2

我有一个使用 JPA 持久化的 java 对象。这个对象有一个成员'friendsList',它是一个字符串列表。我在这个对象上使用了@CollectionOfElements 休眠注释。这样做的结果是我有两个表,一个持久化我的对象,另一个持久化每个对象的列表。

如何检索(使用 jpa)列表包含 'hello' 或 'world' 的所有对象?

4

1 回答 1

0

以下工作正常:它还将创建一个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')
于 2013-01-31T08:19:09.787 回答