现在如果有两张表,一个是order,一个是items,关系是一对多,order是一的一端,可以有多个item,现在想实现级联,由items一端控制,当在items中加入一条新纪录时,如果对应的order已经存在,则order表不再插入一条新的记录,如果对应的order不存在则级联插入一条新的orderitems端
@ManyToOne(cascade=CascadeType.PERSIST)
@JoinColumn(name="orderId", referencedColumnName="id")
private Order order;
order端
@OneToMany(mappedBy="order")
private Set<Item> itemss=new HashSet<Item>();

解决方案 »

  1.   

    当在items中加入一条新纪录时,如果对应的order已经存在,则order表不再插入一条新的记录,如果对应的order不存在则级联插入一条新的order
    这个应该容易解决把、、、加个判断就OK啦!!恩。你的这两张表有主外键关系吧!!在你添加items中的记录时,先通过它的外键去查询对应的order表中的记录,如果有:则order表不再插入一条新的记录。如果没有:则级联插入一条新的order。我觉得应该由order一方维护更好些吧!!这就是级联保存啊!!其实你只要先save()item,然后再将其setOrder(order)其中,级联插入的order,你得先new 出来,再save()啊!!
    真的这个应该挺容易的!!你再想想哦!!!