尽管使用级联类型全部

时间:2015-12-27 15:46:45

标签: hibernate spring-mvc jpa hibernate-mapping cascading-deletes

我试图保存一个与其他表有一对多关系的表..主表的插入查询被解雇没有任何问题。在第一次查询之后,当触发对child的插入查询时,我得到了Transient Object Exception。当我证明一对多的关系时,我正在使用cascadeType。

this.getEmailGroupDAO().saveOrUpdate(emailGroup);
this.getEmailGroupDAO().flush();

主表中的关联在

之下
@OneToMany(fetch = FetchType.LAZY, mappedBy = "id.emailGroup", cascade = CascadeType.ALL,orphanRemoval = true )
private Set<EmailSubGroup> emailSubGroups = new HashSet<EmailSubGroup>(0);

我在保存或更新后调用刷新操作。一旦调用了保存或更新,我就能看到生成的Id。请告诉我这是什么问题。我已经尝试了其他帖子中提到的所有其他解决方案。

下面是我的另一张表及其嵌入式密钥。

@EmbeddedId
@AttributeOverrides({
@AttributeOverride(name = "groupSysID", column = @Column(name = "SUB_GROUP_SYSID", nullable = false)),
@AttributeOverride(name = "groupSysID", column = @Column(name = "GROUP_SYSID", nullable = false)) })
private EmailSubGroupID id;

表关系。 父tbale组可以有多个子组。并且子组表具有引用父表sysid的复合键。由于子组本身可以是一个组。

下面是EmailSubGroupID类def。

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "SUB_GROUP_SYSID", nullable = false)
private EmailGroup emailSubGroup;

@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "GROUP_SYSID",  nullable = false,insertable = false,updatable =false)
private EmailGroup emailGroup;  

0 个答案:

没有答案