使用JPQL从实体的ElementCollections中删除

时间:2012-06-21 15:40:09

标签: java hibernate jpql

我的实体User有一个基本的集合:

@ElementCollection
private Set<String> completedQuests = Sets.newHashSet();

如何从所有/多个用户的集中删除某些值?这个伪查询的正确JPQL是什么?

DELETE FROM User.completeQuests
WHERE value IN (:collectionOfValues)

(仅限Hibernate替代品,但不是首选,也欢迎。)

1 个答案:

答案 0 :(得分:0)

如果所有其他方法都失败了,那就是原生SQL。

em
    .createNativeQuery(
        "DELETE FROM user_completedquests " +
        "WHERE completedquests IN (:daily)"
    )
    .setParameter("daily", dailyQuests)
    .executeUpdate();

(尚未测试过)