使用条件比较表时如何添加另一个表?

时间:2014-11-20 05:39:19

标签: hibernate subquery criteria

我正在使用基于第二个表id值的hibernate标准比较两个表,但我需要在单个列表中使用第二个表值。这是我的代码

DetachedCriteria subquery = DetachedCriteria.forClass(
                    Users.class).setProjection(
                    Projections.property("empCd"));
Criteria criteria = session.createCriteria(Employee.class);
criteria.add(Property.forName(YRLBatchConstants.EMP_CODE)
                    .in(subquery));
lstEmpMaster = criteria.list();

我正在比较User和Employee字段员工代码并在列表中生成一些数据,但我只获得了Employee对象,但我还需要User表中的更多字段。

任何人都可以帮我解决。

1 个答案:

答案 0 :(得分:0)

据我所知,Hibernate Criteria不支持theta-style joins。因此,您可以改为使用HQL查询:

List<Object[]> properties = session.createQuery(
    "select e.name, u.name 
    from Employee e, Users u
    where e.empCd = u.empCd")
.list();