Hibernate:查询包含CollectionOfElements中指定元素的实体?

Ran*_*ku' 5 java database collections hibernate

假设我有这个实体(对于Hibernate):

@Entity
public class Person {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    Long id;

    @CollectionOfElements
    @IndexColumn("phones_index")
    Set<String> phones;
}
Run Code Online (Sandbox Code Playgroud)

例如,我想获取Person的实例,其手机包含"555-1234".我怎么能对此进行查询?我正在寻找类似的东西:

session.createCriteria(Person.class)./*something*/.add(Restrictions./*something*/"555-1234").list();
Run Code Online (Sandbox Code Playgroud)

ima*_*jol 9

嗨,你可以尝试这个

String phone = "555-1234";
Person person= (Person) session.createQuery("from Person p join p.phones pl where pl = :phone").setString("phone", phone).uniqueResult();
Run Code Online (Sandbox Code Playgroud)