我有一个使用 JPA 持久化的 java 对象。这个对象有一个成员'friendsList',它是一个字符串列表。我在这个对象上使用了@CollectionOfElements 休眠注释。这样做的结果是我有两个表,一个持久化我的对象,另一个持久化每个对象的列表。
如何检索(使用 jpa)列表包含 'hello' 或 'world' 的所有对象?
以下工作正常:它还将创建一个Parent_names
用于维护关系的表。不要使用 @OneToMany 进行注释
@ElementCollection(targetClass = String.class)
private List<String> names;
或者我认为您可以尝试一种解决方法:将字符串包装在一个类中。
class FriendsName{
private String name;
//getter setter
}
然后,
class Parent{
@OneToMany
List<FriendsName> friendsName;
}
你可以像这样做JPQL:
select p from Parent p where p.friendsName.name in ('hello','world')