jpa 實體bean中字段名稱和數據庫中字段名稱對應的方式

在學習使用jpa的時候發現查詢數據庫的時候有些字段沒有獲取到,都是使用了駝峯命名的多個單詞組成的字段。查看服務打印的log後發現自動生成的查詢語句對於駝峯命名的多個單詞組成的字段連接方式是以"_"連接。比如,在實體裏面的字段是userName,數據庫中的字段也是userName,但是自動生成的sql語句中的字段是user_name,對應不上,所以找不到。

解決方式是在配置文件application.properties中添加如下配置:

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategyStandardImpl

然後在對應的實體字段註解中添加name="數據庫中的字段",如下:

    @Column(nullable = false,name = "userName")
    private String userName;

這樣就可以配置自動生成的sql語句也是用設置好的字段名了。

其他配置如下:

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

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章