@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);
如果不存在,我该如何坚持成员,否则合并(更新)?
添加到您的Auction.seller
字段CascadeType.PERSIST
。这样:
@Entity
public class Auction{
@ManyToOne(cascade={CascadeType.MERGE, CascadeType.PERSIST})
private Member seller;
.....
}
使用cascadetype.merge,然后使用entitymanager.merge()。合并将检查实体是否是新的,并适当插入或更新,并且级联操作将以相同的方式对参考实体进行。