简体   繁体   English

使用JPQL从实体的ElementCollections中删除

[英]Delete from entities' ElementCollections with JPQL

My entity User has a basic collection as such: 我的实体User有一个基本的集合:

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

How can I remove some values from that set for all/multiple users ? 如何从所有/多个用户的集合中删除一些值? What is the proper JPQL for this pseudoquery? 这个伪查询的正确JPQL是什么?

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

(A Hibernate-only alternative, though not preferred, is also welcome.) (Hibernate唯一的选择,虽然不是首选,也是受欢迎的。)

If all else fails, native SQL. 如果所有其他都失败了,原生SQL。

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

(Haven't tested it yet) (尚未测试过)

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM