@Entity
public class Auction{
@ManyToOne(cascade=CascadeType.MERGE)
private Member seller;
@OneToOne(cascade=CascadeType.PERSIST)
private Question question;
}
@Entity
public class Member{
}
@Entity
public class Question{
@ManyToOne(cascade=CascadeType.MERGE)
private Member personAsking;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private long id;
}
em.persist(auction);
如果成员不存在,如何保留成员,否则合并(更新)成员?
答案 0 :(得分:0)
添加到您的Auction.seller
字段CascadeType.PERSIST
。像这样:
@Entity
public class Auction{
@ManyToOne(cascade={CascadeType.MERGE, CascadeType.PERSIST})
private Member seller;
.....
}
答案 1 :(得分:0)
使用CascadeType.merge,并使用EntityManager.merge()。合并将检查实体是否是新的并且适当地插入或更新,并且级联操作将以相同的方式对引用的实体起作用。