0

表 A 列

Id,Quantity,Name

表 B 列

Id,Order_Date,A_Id

有谁知道如何编写条件查询以从多个表/POJO 中获取值

Select a.*,b.Order_Date from A a,B b where a.Id=b.A_Id

所以最终的结果一定是这样Id,Quantity,Name,A_Id的。

我刚刚开始学习 Hibernate,我只知道从一张表/POJO 中获取值

 Criteria crit = this.getSession().createCriteria(A.class);
4

1 回答 1

3

有两种方法可以做到这一点:

1.用内连接B返回A的POJO。

Criteria criteria = session.createCriteria(A.class);
criteria.setFetchMode("b",FetchMode.JOIN);
criteria.add(Restrictions.eq("id",a.id));
A returnObjA = criteria.uniqueResult();

以上是当您想要拥有整个 POJO 而不仅仅是 POJO 的几个实体时。

2. 应用投影:

让我们说如果你只想要 B 的 id。

ProjectionList p1=Projections.projectionList();
p1.add(Projections.property("balias.id"));
Criteria criteria = session.createCriteria(A.class);
criteria.createAlias("b","balias");
criteria.add(Restrictions.eq("id",a.id));
criteria.setProjection(p1);
List<Long> bidList = criteria.listResult();

此外,为了进一步参考,您可以通过以下链接。 http://docs.jboss.org/hibernate/orm/3.3/reference/en/html/tutorial.html

于 2013-06-26T18:30:28.420 回答