一尘不染

使用hibernate条件左联接

java

我有两个实体:IssueIssue_Tracker。我正在使用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"

如何使用休眠标准实现这一目标,最重要的是,我必须将其用于分页。

而“我的道”如下所示以显示jqgrid中的“问题”列表

公共列表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;
  } }

对于简短的解释,请参考此问题,如何使用struts2-jqgrid插件在jqgrid中显示两个表数据,并休眠
任何帮助都将非常有用。


阅读 218

收藏
2020-12-03

共1个答案

一尘不染

您可以尝试以下

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

2020-12-03