在集合字段中查找元素 Spring Data JPA 查询

Ghi*_*tfi 7 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>();
    }
Run Code Online (Sandbox Code Playgroud)

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

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

尽管字段作业包含我的变量,但它始终返回一个空列表

有什么建议吗?

YCF*_*F_L 5

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

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