使用Hibernate标准的java嵌套集合
我有两个表Tab1
和Tab2
“Tab1
”到“Tab2
”的映射是one-to-many
代码是这样的:
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;
}
我想从两个表中提取记录
例如:Tab1
有列:Stu_Id, Stu_FirstName, Stu_LastName
Tab2
有一列:Stu_Id(foriegn Key),Stu_Subject, Stu_Teacher
现在我想从Tab1
和Stu_Subject
,从Tab2
获取Stu_id
# 1 楼答案
你有不同的可能性来解决你的问题。要么调用命名查询,要么使用^{} 构建类型化查询
已经有许多其他问题涉及{}与{}或{}的关系。这取决于你喜欢什么。我个人更喜欢
CriteriaBuilder
,因为您可以使用JPA元模型,并且它提供了重构的便利。(尽管我为CriteriaBuilder
编写了自己的包装,以获得更好的SQL
-外观和感觉;-))例如
NamedQuery
: Construct JPA query for a OneToMany relation例如
TypedQuery
: JPA CriteriaQuery OneToMany