更新父实体时如何更新子实体?

问题描述

我有两个实体 Space 作为父实体,SpaceInactivityDate 作为子实体,关系 @OnetoMany@ManyToMany 以及 space_id 作为外键。 insert 操作工作正常,但是当我尝试更新时,Space 表已更新,但在 SpaceInactivityDate 表中,他添加了新行而不是更新行。我使用了 CascadeType=Allcascade = {CascadeType.PERSIST,CascadeType.MERGE},但通常结果相同。

Space.java

@Entity
@Table(name = "space")
public class Space {

@OnetoMany(cascade = {CascadeType.PERSIST,CascadeType.MERGE},mappedBy = "space",fetch = FetchType.LAZY)   
private Set<SpaceInactivityDate> spaceInactivityDates = new HashSet<SpaceInactivityDate>();

// getters+setters
}

SpaceInactivityDate .java

@Table(name="space_incativity_date")
@Entity
public class SpaceInactivityDate {

@Id
@GeneratedValue(strategy=GenerationType.AUTO)
@Column(name="id")
private Integer id;

@Column(name = "inactivity_start_date",nullable = false,insertable = true,updatable = true)
@Type(type = "ec.ep.dit.sip.expomep.persistency.type.PersistentLocalDate")
private LocalDate inactivityStartDate;

@Column(name = "inactivity_end_date",updatable = true)
@Type(type = "ec.ep.dit.sip.expomep.persistency.type.PersistentLocalDate")
private LocalDate inactivityEndDate;


@JoinColumn(name="space_id",referencedColumnName="id") 
@ManyToOne(optional=false,fetch=FetchType.LAZY)
private Space space;

}

SpaceServiceImpl.java

this.spaceDao.save(space);

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)