该模型包含:

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/

10-09 05:10