jpa知识点

@NotFound(action=NotFoundAction.IGNORE)html

使用hibernate 
注解配置实体类的关联关系,在many-to-one,one-to-one关联中,一边引用自另外一边的属性,若是属性值为某某的数据在数据库不存在了,hibernate默认会抛出异常。解决此问题,加上以下注解就能够了:
@NotFound(action=NotFoundAction.IGNORE),意思是找不到引用的外键数据时忽略,NotFound默认是exception

-------------------------------------------------------------------
cascade = CascadeType.REFRESH,cascade=CascadeType.ALL

cascade表示级联操做  java

 

Cascade 级联操做 
CascadeType. PERSIST 级联持久化 ( 保存 ) 操做 
CascadeType. MERGE 级联更新 ( 合并 ) 操做 
CascadeType. REFRESH 级联刷新操做,只会查询获取操做 
CascadeType. REMOVE 级联删除操做 
CascadeType. ALL 级联以上所有操做 
Fetch 抓取是否延迟加载,默认状况一的方为当即加载,多的一方为延迟加载 
mappedBy 关系维护 
mappedBy= "order" 表示在 OrderItem 类中的 order 属性来维护关系

 



综上:大多数状况用CascadeType.MERGE就能达到级联跟新又不报错,用CascadeType.ALL时要斟酌下CascadeType.REMOVE数据库

@Fetch:app

定义了加载关联关系的获取策略. FetchMode 能够是spa

SELECT (在须要加载关联的时候触发select操做),     SUBSELECT(只对集合有效,使用了子查询策略,详情参考Hibernate参考文档).net

JOIN (在加载主实体(owner entity)的时候使用SQL JOIN来加载关联关系).hibernate

JOIN 将覆写任何延迟属性 (经过 JOIN策略加载的关联将再也不具备延迟性).code

相关文章
相关标签/搜索