8

私には2つのエンティティがあります:IssueIssue_Tracker。Hibernate3.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"

Hibernate Criteriaを使用してこれを達成する方法、そして最も重要なのは、ページネーションに使用する必要があることです。

My Daoは、jqgridの問題のリストを表示するために次のとおりです

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;
  } }

簡単な説明については、struts2を使用してjqgridで2つのテーブルデータを表示する方法についてこの質問を参照してください-jqgridプラグインと休止状態 のヘルプは素晴らしいでしょう。

4

4 に答える 4

8

次のことを試すことができます

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();

ここで、親は のプロパティ名でIssues.java、子は のプロパティですIssueTracker.java

于 2013-01-08T12:53:42.897 に答える
8

良い、

1つのサンプルに従ってください...

Criteria crit = session.createCriteria(Issues.class);
crit.createAlias("otherClass", "otherClass");
crit.add(Restrictions.eq("otherClass.status", "Escalate To"));
List result = crit.list();

私はこれが助けることができると思います!!

于 2013-01-08T13:05:19.270 に答える
2

これは私のために働いたので、これを試してください

Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Issues.class, "issues");
criteria.setFetchMode("issues.issuetracker", FetchMode.JOIN);
criteria.createAlias("issues.issuetracker", "issuetracker");
criteria.add(Restrictions.eq("status","Escalate To"));
List list = criteria.list();
return list;
于 2016-02-26T13:36:58.410 に答える