One方配置:
@OneToMany(fetch = FetchType.EAGER) //即时加载
@JoinColumn(name = "ERP_GOODS_PID")// 必须写,否则会生成一个连接表
@OrderBy("id")// 排序,否则每次取出来Set集合元素的顺序都不一样,为什么用Set集合,官方解释是说它的增删改效率最高
@Cascade({CascadeType.ALL,CascadeType.DELETE_ORPHAN}) // 这才是关键,必须使用org.hibernate.annotations.CascadeType. DELETE_ORPHAN 更新的时候,才会根据Set集合的元素,去维护父子关系(不在集合的元素会delete掉,而不是将外键update成null)
public Set<ErpGoodsDetail> getErpGoodsDetails() {
return erpGoodsDetails;
}
--------------------------------------------------------------
Many方配置:
@ManyToOne
@JoinColumn(name="ERP_GOODS_PID")// 必须写,否则会生成一个多余的外键字段(有点不解),不影响操作,但绝对不是你想要的。
public ErpGoods getErpGoodsParent() {
return erpGoodsParent;
}
这样配置后,你在操作one方所有的增删改查,就都符合我们意图了。但在操作many方的时候,有点小插曲,就是当你删除的时候,会报异常:deleted object would be re-saved by cascade
解决办法可以参考下面这一篇的第二种方法,先删除关联关系,再删除
http://corejava2008.iteye.com/blog/896080
其他的扩展阅读:
http://sin90lzc.iteye.com/blog/1048122
分享到:
相关推荐
博文链接:https://llying.iteye.com/blog/220809
基于HIBERNATE 操作表的关系练习例子
@JoinTable批注定义了联接表的表名,联接列数组,以及invers联接列数组,后者是关联表中关联到Employee主键的列(the “other side”)。 被关联端不必也不能描述物理映射:只需要一个简单的mappedBy参数,该参数包含...
NULL 博文链接:https://tgwall163.iteye.com/blog/1277750
NULL 博文链接:https://tianjun309.iteye.com/blog/695332
onetomany-hibernate在myeclipse下的使用开发hibernate程序
这种策略支持双向的一对多关联,但不支持 IDENTIFY 生成器策略,因为ID必须在多个表间共享。一旦使用就不能使用AUTO和IDENTIFY生成器。 每个类层次结构一张表 @Entity @Inheritance(strategy=InheritanceType....
详解Hibernate cascade级联属性的CascadeType的用法 cascade(级联) ...cascade表示级联操作,在hibernate配置注解@OneToOne,@OneToMany,@ManyToMany,@ManyToOne中的属性。 例如: @ManyToOne(c
一对多关系的 Hibernate 注释
* name 表示该表主键生成策略名称,它被引用在@GeneratedValue中设置的“gernerator”值中 * sequenceName 表示生成策略用到的数据库序列名称。 * initialValue 表示主键初始值,默认为0. * allocationSize 每次主键...
hibernate对象三状态及OneToOne&OneToMany&ManyToMany讲解,代码示例,数据库示例!非常全面
“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”“#跟踪狐狸”
JPA_OneToMany学习教程JPA_OneToMany学习教程JPA_OneToMany学习教程JPA_OneToMany学习教程
NULL 博文链接:https://lc2586.iteye.com/blog/721309
/rest/users/all这将返回在MySql表中创建的Users表中的Users列表(用户) /rest/users/{name} -返回URL中传递的用户的详细信息 /rest/id/{id} -返回URL中传递的用户ID的用户详细信息 /rest/update/{id}/{name} -这...
一对多 @OneToMany 注解可定义一对多关联。一对多关联可以是双向的。 双向 规范中多对一端几乎总是双向关联中的主体(owner)端,而一对多的关联注解为 @OneToMany(mappedBy=)
Hibernate 实体类 生成表结构 ---- 领域(Domain)驱动建模 这次使用的是驱动建模,传统的设计模式是: 先设计表,再创建实体 JPA 注解使用 @Entity 标明是实体类 @Table 映射表名称 @Id 主键标识 @...
NULL 博文链接:https://fqh1987.iteye.com/blog/791845
jpa实验一些 jpa 模型映射测试: jpaPolymorphism:具有继承和多态关联的域模型jpaOneToManyUnidirectional:OneToMany 单向关联映射jpaOneToManyBidirectional:OneToMany 双向关联映射
主要介绍了Java中的OneToMany的使用方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧