【问题标题】:java jpa : list and sublistjava jpa:列表和子列表
【发布时间】:2013-01-14 23:39:12
【问题描述】:

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

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

【问题讨论】:

  • 我没有检查过,但应该是这样的:select p from Parent p join p.friendsList f where f in ('hello', 'world')

标签: java sql database hibernate jpa


【解决方案1】:

以下工作正常:它还将创建一个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')

【讨论】:

  • 只为一个简单的字符串创建一个实体 (FriendsName) 不是一个好主意
  • @AdamDyga:是的,但是,即使@ElementCollection 也应该可以工作。
猜你喜欢
  • 2015-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多