JPA如何設置表名和實體名,表字段與實體字段的對應
JPA設置表名和實體名,表字段與實體字段的對應
首先 你的jpaProperties配置項中要有
<prop key="hibernate.hbm2ddl.auto">update</prop>
這樣就可以直接有對象映射為表結構,實現(xiàn)面向對象向數據庫轉化。
實體的名字可以和表名字不一樣,字段名字和實體的名字也可以不一樣。
package com.shiroweb.entitys;
import java.util.Date;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="shiro_user")//設置數據庫中表名字
public class ShiroUser {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name="USER_NAME")<span style="font-family: Arial, Helvetica, sans-serif;">//設置數據庫中字段名字,也可以設置長度,是否為空等屬性</span>
private String username;
@Column(name="PASS_WORD")
private String password;
@Column(name="CREATE_DATE")
private Date createDate;
@Column(name="USER_ID")
private String userId;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Date getCreateDate() {
return createDate;
}
public void setCreateDate(Date createDate) {
this.createDate = createDate;
}
}
JPA數據庫表實體命名規(guī)則
Unknown column 'user0_.create_time' in 'field list'
數據庫,表字段命名是駝峰命名法(createTime),Spring data jpa 在操作表的時候,生成的sql語句中卻是create_time, 表字段不對照,
Spring data jpa基于hibernate-core-5.2.16.final.jar
這是由于jpa中hibernate的字段全名策略引起的,默認是SpringPhysicalNamingStrategy,在hibernate的包:org.hibernate.boot.model.naming中有一堆的命名策略,當然也可以實現(xiàn)
PhysicalNamingStrategy自定義實現(xiàn)。
application.properties 寫法
1、無修改命名
spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl
2、遇到大寫字母 加”_”的命名
spring.jpa.hibernate.naming.physical-strategy=org.springframework.boot.orm.jpa.hibernate.SpringPhysicalNamingStrategy
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關文章
Java里得到00:00:00格式的時分秒的Timestamp
Java里如何得到00:00:00格式的時分秒的Timestamp ,下面是具體的實現(xiàn)代碼,需要的朋友可以參考下。2009-09-09
Java連接Redis報錯:NoSuchElementException: Unable to&nb
這篇文章主要介紹了Java連接Redis報錯:NoSuchElementException: Unable to validate object的解決辦法,文中通過圖文講解的非常詳細,具有一定的參考價值,需要的朋友可以參考下2024-12-12
詳解SpringBoot結合swagger2快速生成簡單的接口文檔
這篇文章主要介紹了詳解SpringBoot結合swagger2快速生成簡單的接口文檔,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2019-05-05

