【发布时间】:2012-01-20 10:14:18
【问题描述】:
我有 Persistent 类,指的是许多具有 LAZY 提取类型的集合,例如
@Entity
@Table(name = "TABLE")
public class Table implements Serializable {
....
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "LIST1", nullable = true)
private ArrayList list1;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "LIST2", nullable = true)
private ArrayList list2;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "LIST1", nullable = true)
private ArrayList list1;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "LIST2", nullable = true)
private ArrayList list2;
....
}
我已经通过 Hibernate 实例化了一些 TABLE 类型的对象,将其添加到表列表中,现在想要为该列表中的所有对象获取其中一个集合(比如 list2)。
for(Table table:tables){
result=table.list2;
....
}
但是这样 Hibernate 会生成一系列单独的 SQL 查询。 hibernate 可以在一个查询中为集合中的所有对象获取 list2 吗? (重要的是不要创建新的 Table 类实例,而是修改已经存在的对象)
【问题讨论】:
标签: java hibernate grails lazy-loading