[轉] hibernate Mysql 自增長 注解配置,表無關聯的注解方式關聯查詢


不同數據庫 自增長ID配置

正對不同的數據庫可以同時使用
        @Id
        @GeneratedValue(strategy = GenerationType.AUTO)


2 針對mysql
 @Id
 @GeneratedValue(strategy = GenerationType.IDENTITY)


3 針對oracle
       @Id
       @GeneratedValue(strategy = GenerationType.SEQUENCE,generator="s_gen")
       @SequenceGenerator(name="s_gen",sequenceName="s_seq")


無關聯表 關聯查詢配置

1、FetchType.LAZY:懶加載,加載一個實體時,定義懶加載的屬性不會馬上從數據庫中加載。

2、FetchType.EAGER:急加載,加載一個實體時,定義急加載的屬性會立即從數據庫中加載。

3、比方User類有兩個屬性,name跟address,就像百度知道,登錄后用戶名是需要顯示出來的,此屬性用到的幾率極大,要馬上到數據庫查,用急加載;而用戶地址大多數情況下不需要顯示出來,只有在查看用戶資料是才需要顯示,需要用了才查數據庫,用懶加載就好了。所以,並不是一登錄就把用戶的所有資料都加載到對象中,於是有了這兩種加載模式。

name 是當前實體 屬性   referencedColumnName 是與之關聯的實體 屬性

fetch=FetchType.LAZY)延遲加載關聯表 不要亂用 有時候要爆胎

  @ManyToOne(targetEntity=UnitOrganizations.class,fetch=FetchType.LAZY)

    @JoinColumn(name="org_Id",referencedColumnName="id",updatable=false,insertable=false)

  public UnitOrganizations getOrganizations() {

    return organizations;

    }


建議在一多對關聯中在"一"方用延遲加載"多"方

可以在HQL中顯式的"迫切左外連接" left join fetch
這樣做Hibernate可以少訪問數據庫,也可以用"@BatchSize(size = 5)"來減少訪問數據庫的次數


免責聲明!

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



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