Java 使用Hibernate条件的嵌套集合

Java 使用Hibernate条件的嵌套集合,java,hibernate,Java,Hibernate,我有两个表Tab1和Tab2 “Tab1”到“Tab2”的映射是一对多 代码是这样的: private Collection< Tab2 > obj = new ArrayList< Tab2 >(); @javax.persistence.OneToMany(fetch=javax.persistence.FetchType.LAZY, mappedBy = "T

我有两个表
Tab1
Tab2

Tab1
”到“
Tab2
”的映射是
一对多

代码是这样的:

private Collection< Tab2 > obj = new ArrayList< Tab2 >();

@javax.persistence.OneToMany(fetch=javax.persistence.FetchType.LAZY,
                                                     mappedBy = "Tab1")

public Collection< Tab2 > getTab2() 
{ 
  return Tab2;
}

public void setTab2( Collection<Tab2 > val ) 
{ 
 this.Tab2 = val;
}
private Collectionobj=new ArrayList();
@OneToMany(fetch=javax.persistence.FetchType.LAZY,
mappedBy=“Tab1”)
公共集合getTab2()
{ 
返回表2;
}
公共无效集合表2(集合值)
{ 
this.Tab2=val;
}
我想从两个表中提取记录。

例如:
选项卡1
有列:
斯图Id、斯图名字、斯图姓氏


Tab2
有一列:
Stu-Id(外键)、Stu-Subject、Stu-Teacher


现在我想从
Tab1
Stu Subject
获取
Stu-id
Stu-Teacher
Tab2

解决问题的可能性不同。要么调用命名查询,要么使用

已经有很多其他问题涉及到
OneToMany
——与
NamedQuery
CriteriaBuilder
的关系。这取决于你喜欢什么。我个人更喜欢
CriteriaBuilder
,因为您可以使用JPA元模型,并且它提供了重构的便利。(尽管我为
CriteriaBuilder
编写了自己的包装,以获得更好的
SQL
-外观;-))

NamedQuery
示例:

TypedQuery
示例:

你有不同的可能性来解决你的问题。要么调用命名查询,要么使用

已经有很多其他问题涉及到
OneToMany
——与
NamedQuery
CriteriaBuilder
的关系。这取决于你喜欢什么。我个人更喜欢
CriteriaBuilder
,因为您可以使用JPA元模型,并且它提供了重构的便利。(尽管我为
CriteriaBuilder
编写了自己的包装,以获得更好的
SQL
-外观;-))

NamedQuery
示例:

TypedQuery
示例:

我想用JPA检索记录。我想用JPA检索记录。。