java - 在集合字段中查找元素 Spring Data JPA Query

标签 java spring jpa spring-data-jpa

我有一个包含集合字段的实体

@Entity
@Table(name = "SERVICE")
    public class Service {

@Id
    @GeneratedValue(strategy = GenerationType.AUTO, generator = "SEQUENCE")
    @SequenceGenerator(name = "SEQUENCE", sequenceName = "SEQUENCE")
    @Column(name = "ID_SERVICE")
    private Integer id;

        @ElementCollection
    @CollectionTable(name = "SERVICE_JOB",
            joinColumns = @JoinColumn(name = "ID_SERVICE", referencedColumnName = "ID_SERVICE"))
    @Column(name = "JOB")
    private List<String> jobs = new ArrayList<String>();
    }

我想返回现场作业包含我的变量“作业”的服务

@Query("SELECT DISTINCT s FROM Service s WHERE ?1 in (s.jobs)")
List<Service> findByJob(String job);

尽管现场作业包含我的变量,但它总是返回一个空列表

有什么建议吗?

最佳答案

尝试自定义查询,您可以像这样使用 member of :

@Query("SELECT s FROM Service s WHERE ?1 member of s.jobs")
List<Service> findByJobs(String job)

关于java - 在集合字段中查找元素 Spring Data JPA Query,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51085760/

相关文章:

java - Spring中使用注解与XML配置的情况?

java - Spring Boot 中的标准 API

java - JPA 存储库 : inner join with null value

java - 在 Java 中,如何一次从文件中迭代多个元素?

java - 如何将一个jar文件提取并分成多个?

java - GSON/JSON - IF 两个属性值匹配返回对象

java - Spring Transaction - noRollbackFor 在发生异常时不会提交

spring - 在 Spring Security 中为不同的选项卡强制执行单独的 session

java - 更新期间 hibernate 不刷新

java - "detached entity passed to persist error"与 JPA/EJB 代码