java - QueryDSL 获取另一个实体集合中的任何实体

标签 java hibernate jpa querydsl

我将 JPA 与 Hibernate 和 QueryDSL (v.4.0.5) 结合使用。我有这个实体:

package com.test.model.entity;

@Entity
public class Article {
    @Id
    private Long id;

    @ManyToMany(fetch = LAZY, cascade = DETACH)
    private Set<Tag> tags;
}

如何找到与给定的一组标签相匹配的所有文章? 我想我应该这样开始:

public BooleanExpression hasTag(Set<Tag> tags){
    final QArticle article = QArticle.article;
    return article.tags.any().eqAny(ce);
}

其中 ce 应该是一个 CollectionExpression。 显然我不知道如何设置它。

有什么解决办法吗?

最佳答案

你试过吗

public BooleanExpression hasTag(Set<Tag> tags){
    QArticle article = QArticle.article;
    return article.tags.any().in(tags);
}

关于java - QueryDSL 获取另一个实体集合中的任何实体,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33445572/

相关文章:

java - 覆盖指向复合键 JPA/Hibernate 的外键名称

java - 在 OneToMany 关系中保存时,JPA 不清除 Set 迭代器

mysql - 用 JPA/Hibernate 覆盖连接继承外键名称

java - 将 20 个元素放入坐标系中且相邻元素唯一的最佳方法

java - 如何在 Maven 生成的 jar 中包含特定文件夹?

java - 在MVC架构中, `View`可以访问模型吗?

java - 使用 hibernate 和 postgres 增加生成键的起始值

java - Hibernate 中的 JPA 2.1 NamedSubgraph 忽略子类

java - main()方法中的java args数组混淆(null检查)

java - HashMap 如何在不调用 equals 方法的情况下替换键的值