我怎么能用Hibernate做到这一点

时间:2011-03-22 12:31:18

标签: java hibernate hibernate-criteria

SQL查询如下,

select s1.* 
from Sample1 s1,Sample2 s2 where
s1.field1=s2.field4 and
s2.field2='XXYYZZ'

表格结构

  • 表Sample1只有三个字段(field1,field2,field3)
  • 表Sample2有三个字段(field4,field5,field6)

Bean名称是

Sample1BeanSample2Bean

我只希望数据来自Sample1,(field1,field2,field3)。如何在没有HQL和Using Criteria类的情况下使用Hibernate来实现这一点?

2 个答案:

答案 0 :(得分:0)

  SELECT s1 FROM Sample1 s1, Sample2 s2 WHERE s1.field1 = s2.field2 AND s2.field2 = 'XXYYZZ'

它将返回Sample1类型的对象作为结果。

答案 1 :(得分:0)

List s1 = session.createCriteria(Sample1.class)
                 .createCriteria("field1")
                 .add(Restrictions.eq("field2", "XXYYZZ")).
                 .list();

Hibernate对不在表上的对象进行查询。因此,应映射Sample1和Sample2之间的关联。

观测值:

  1. s1将有一个Sample1列表。
  2. “field1”应该是Sample2类型的Sample1中的属性。