您好,登錄后才能下訂單哦!
這篇文章主要介紹“JPA怎么設置表名和實體名”,在日常操作中,相信很多人在JPA怎么設置表名和實體名問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”JPA怎么設置表名和實體名”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
首先 你的jpaProperties配置項中要有
<prop key="hibernate.hbm2ddl.auto">update</prop>
這樣就可以直接有對象映射為表結構,實現面向對象向數據庫轉化。
實體的名字可以和表名字不一樣,字段名字和實體的名字也可以不一樣。
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 >//設置數據庫中字段名字,也可以設置長度,是否為空等屬性</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; } }
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中有一堆的命名策略,當然也可以實現
PhysicalNamingStrategy自定義實現。
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
到此,關于“JPA怎么設置表名和實體名”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。