该模型包含:StationSecondaire
类:
@ManyToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY)
@JoinColumn(name = "station_principal_id", nullable = false)
public StationPrincipale getStationPrincipale() {
return this.stationPrincipale;
}
和
StationPrincipale
类:@OneToMany(cascade = CascadeType.ALL,fetch = FetchType.LAZY, mappedBy = "stationPrincipale")
public Set<StationSecondaire> getStationSecondaires() {
return this.stationSecondaires;
}
我试图通过以下方式获取数据库中存在的
StationPrincipale
:StationPrincipale sp = spDAO.findStationByName("Some name");
//Some staff
StationSecondaire ssNew = new StationSecondaire(0, ((Station) obj).getValue().toString(), null,((Station) obj).getId());
ssNew.setStationPrincipale(sp);
//staff
ssDAO.persist(ssNew);
之后,我创建了一个新的
StationSecondaire
对象,并将它们附加到sp
。当我尝试保留
StationSecondaire
对象时,出现了该错误:detached entity passed to persist: StationPrincipale
我该如何解决它,以便可以将一个
StationSecondaire
对象添加到现有的StationPrincipale
对象上? 最佳答案
persist
用于新值,所以请使用merge
代替它,因为sp
已经存在。
关于java - Hibernate JPA:独立实体已传递以持久化,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20604953/