標籤:
不同資料庫 自增長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)"來減少訪問資料庫的次數
[轉] hibernate Mysql 自增長 註解配置,表無關聯的註解方式關聯查詢