jpa知識點
@NotFound(action=NotFoundAction.IGNORE)
使用hibernate
注解配置實體類的關聯關系,在many-to-one,one-to-one關聯中,一邊引用自另一邊的屬性,如果屬性值為某某的數據在數據庫不存在了,hibernate默認會拋出異常。解決此問題,加上如下注解就可以了:
注解配置實體類的關聯關系,在many-to-one,one-to-one關聯中,一邊引用自另一邊的屬性,如果屬性值為某某的數據在數據庫不存在了,hibernate默認會拋出異常。解決此問題,加上如下注解就可以了:
@NotFound(action=NotFoundAction.IGNORE),意思是找不到引用的外鍵數據時忽略,NotFound默認是exception
-------------------------------------------------------------------
cascade = CascadeType.REFRESH,cascade=CascadeType.ALL
-------------------------------------------------------------------
cascade = CascadeType.REFRESH,cascade=CascadeType.ALL
cascade表示級聯操作
Cascade 級聯操作
CascadeType. PERSIST 級聯持久化 ( 保存 ) 操作
CascadeType. MERGE 級聯更新 ( 合并 ) 操作
CascadeType. REFRESH 級聯刷新操作,只會查詢獲取操作
CascadeType. REMOVE 級聯刪除操作
CascadeType. ALL 級聯以上全部操作
Fetch 抓取是否延遲加載,默認情況一的方為立即加載,多的一方為延遲加載
mappedBy 關系維護
mappedBy= "order" 表示在 OrderItem 類中的 order 屬性來維護關系
綜上:大多數情況用CascadeType.MERGE就能達到級聯跟新又不報錯,用CascadeType.ALL時要斟酌下CascadeType.REMOVE
@Fetch:
定義了加載關聯關系的獲取策略. FetchMode 可以是
SELECT (在需要加載關聯的時候觸發select操作), SUBSELECT(只對集合有效,使用了子查詢策略,詳情參考Hibernate參考文檔)
JOIN (在加載主實體(owner entity)的時候使用SQL JOIN來加載關聯關系).
JOIN 將覆寫任何延遲屬性 (通過 JOIN策略加載的關聯將不再具有延遲性).
浙公網安備 33010602011771號