我有 2 个表 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;
}
我想从两个表中获取记录。
例如: Tab1
具有列:Stu_Id、Stu_FirstName、Stu_LastName
Tab2
有列:Stu_Id(外键),Stu_Subject, Stu_Teacher
现在我想从 Tab1
获取 Stu_id
并从 Tab2
获取 Stu_Subject
、Stu_Teacher
最佳答案
您有不同的可能性来解决您的问题。您可以调用命名查询,也可以使用 CriteriaBuilder
构建类型化查询。
已经有很多其他问题涉及 OneToMany
与 NamedQuery
或 CriteriaBuilder
的关系。现在取决于您的喜好。我个人更喜欢 CriteriaBuilder
,因为您可以使用 JPA-Metamodel 及其提供的重构便利性。 (尽管我将自己的包装器编写到了 CriteriaBuilder 中以获得更好的 SQL 外观和感觉;-))
NamedQuery
示例:
Construct JPA query for a OneToMany relation
TypedQuery
示例:
JPA CriteriaQuery OneToMany
关于java - 使用 Hibernate 标准的嵌套集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41761428/