JPA使用CriteriaUpdate

时间:2016-02-27 12:20:03

标签: java hibernate jpa criteria-api

我正在使用Hibernate(5.1),我需要在符合条件的所有实体上的集合字段中添加一个元素,而无需全部获取它们。

@Entity
public class Order {

    @Id
    public Long id;

    public Date placedOn;

    @ManyToMany
    public List<Item> items;

}

我需要将新Item的相同实例添加到特定日期之后放置的所有Order。我需要使用Criteria API,而不是JPQL。

这可能吗?我无法找到相关文档。

P.S。订单/商品只是一个例子,我正在寻找一种通用方法,我还需要调整它以从集合中删除商品。

1 个答案:

答案 0 :(得分:0)

您无法使用CriteriaUpdate执行此操作,因为它不是更新,而是许多插入,因为您具有在数据库中的关系表上中继的ManyToMany关系。

因此,您必须查询所有订单,然后添加将生成插入语句的项目。