如果对象不在数据库中,则如何级联持续存在,否则合并


@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()。合并将检查实体是否是新的,并适当插入或更新,并且级联操作将以相同的方式对参考实体进行。

最新更新