我有一个包含集合字段的实体
@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/