使用休眠条件进行左连接 [英] Left join using hibernate criteria
问题描述
我有两个实体:Issue
和Issue_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屋!