使用休眠条件进行左连接 [英] Left join using hibernate criteria

查看:108
本文介绍了使用休眠条件进行左连接的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个实体:IssueIssue_Tracker.我正在使用Hibernate 3.6.

I have two entity: Issue and Issue_Tracker. I am using Hibernate 3.6.

SELECT `issues`.`issue_id`,
       `issues`.`issue_raised_date`,
       `issues`.`issue_description`,
       `issue_tracker`.`tracker_status`
FROM `issues`
   LEFT JOIN  `issue_tracker` ON `issues`.`issue_id` = `issue_tracker`.`issue_id`
WHERE `issues`.`status`="Escalate To"

如何使用休眠条件实现此目的,最重要的是,我必须将其用于分页.

How to achieve this using Hibernate Criteria, and most Important, I have to use it for pagination.

我的岛"如下所示,以显示jqgrid中的问题列表

公共列表showHelpDeskIssues(DetachedCriteria dc,int from 整数大小){

public List showHelpDeskIssues(DetachedCriteria dc, int from, int size) {

Session session = HibernateUtil.getSessionFactory().getCurrentSession();
 try
  {

    Criteria criteria = dc.getExecutableCriteria(session);
    criteria.setFirstResult(from);
    criteria.setMaxResults(size);
    criteria.add(Restrictions.eq("status","Escalate To"));

    return criteria.list();
  }
  catch (HibernateException e)
  {
    e.printStackTrace();
    throw e;
  } }

有关简要说明,请参考此问题

For brief explanation please refer this question how to show two tables data in jqgrid using struts2 - jqgrid plugin and hibernate any help would be great.

推荐答案

您可以尝试以下

Criteria criteria = session.createCriteria(Issues.class);
criteria.setFirstResult(from);
criteria.setMaxResults(size);
criteria.setFetchMode('parent.child', FetchMode.JOIN);
criteria.add(Restrictions.eq("status", "Escalate To");
List<Issues> list= criteria.list();

其中parent是Issues.java中的属性名称,child是IssueTracker.java中的属性.

here parent is the property name in Issues.java and child is the property in IssueTracker.java.

这篇关于使用休眠条件进行左连接的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆