@table注解詳解


1.@table和@entity注解的區別

@entity當實體類名和表名相同,實體屬性和表字段相同時,會默認完成實體屬性和表字段的映射,當表名和實體類名不同,表字段和實體屬性不同時,需要使用@table和@column注解完成實體和表直接的映射

2.@table注解默認的情況下只會完成表和實體之間的映射,但是當在application,yml文件中填加了配置之后就會創建表並完成映射

3.application.yml的配置

jpa:
  hibernate:
ddl-auto 的幾個常用屬性值:
none:默認值,什么都不做,每次啟動項目,不會對數據庫進行任何驗證和操作
create:每次運行項目,沒有表會新建表,如果表內有數據會被清空
create-drop:每次程序結束的時候會清空表
update:每次運行程序,沒有表會新建表,但是表內有數據不會被清空,只會更新表結構。
validate:運行程序會校驗數據與數據庫的字段類型是否相同,不同會報錯
實際項目中 update 用的多一點,因為它只更新對象關系的變化,不會清空數據或者重建表。

需要注意的是,如果你不打算在設計表的時候強制加表級別的外鍵關系約束,就自己手動建表,然后不設置 jpa.hibernate.ddl-auto 或者設置它的值為 none。

因為使用 update 更新表,每次啟動 @OneToOne、@OneToMany 等注解會檢查表的外鍵關系,然后強制建立表外鍵約束,這個很煩人。
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM