JPA Hibernate选择与@ElementCollection不同并进行比较

时间:2015-08-12 07:25:19

标签: java spring hibernate jpa

我正在使用Hibernate和JpaRepositories。

Entity类的相关部分是:

@Entity
public class Person {
   //.. id and other attributes

   @Column(name = "function")
   @ElementCollection
   private Set<String> functions;

  // .. getter setter
}

我需要将我的Entity类改为只有一个函数才能处理多个函数。 我的一个DAO中有一个搜索功能,可以将所有现有函数与字符串进行比较,希望找到已定义的函数。

最初的JPA查询是:

select DISTINCT(p.function) from Person p where UPPER(p.function) like UPPER(:term) order by p.function

我如何使用新的@ElementCollection归档相同的结果?

1 个答案:

答案 0 :(得分:3)

您需要将该集合加入Person,然后选择。试试这个问题:

select DISTINCT(f) from Person p join p.functions f where UPPER(f) like UPPER(:term) order by f