当前位置: 首页 > 面试题库 >

使用hibernate条件左联接

龚沛
2023-03-14
问题内容

我有两个实体: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中显示两个表数据,并休眠
任何帮助都将非常有用。


问题答案:

您可以尝试以下

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



 类似资料:
  • 问题内容: 使用hibernate条件时,仅更改联接类型会影响根域类的子级集合的结果。 例如,让Parent类与Child类具有一对多关系,并具有以下数据: 使用以下hibernate条件返回1父行,访问子集合结果将返回两行: 但是,当通过左连接更改上述代码时,将返回1父行,但是在访问子集合时仅返回匹配的子行。 为什么会出现这种副作用?我发现了一些关于使用或避免这种副作用的讨论,具体取决于您的预期

  • 查询DSL: 事实上,这段代码不起作用,我得到以下异常: 问题是条件子句是在方法-中指定的。 Spring Boot 2.0.2 Spring Data JPA 2.0.7 Hibernate5.2.16.final 查询DSL 4.1.4

  • 带hibernate的JSF应用程序 有没有一种方法可以使用联接来过滤条件列表返回的结果<我有两张桌子。订单和顾客。 我需要返回丢失电子邮件地址的客户的所有订单,以及所有order.billingCustomeId=null和CustomeId=nullorder.shipping订单。 客户可以在或上进行匹配。 我将使用的SQL Hibernate标准 这将返回billing/shipping

  • subcompany.hbm.xml 子单位表 branch.java 指定表 我需要帮助编写条件查询使用提供的SQL。

  • 有可能在QueryDSL中执行以下查询吗? 库存余额存储每个零件号/月/年的库存数据;我只需要当前年份和月份的数据。 我已经得到了基本的左连接: 这就产生了正确的sql,但只是在零件号上连接。 检查生成的零件的库存可用性(除其他外)。左连接是必要的,因为我仍然需要没有库存条目的部件(例如新部件)。Left join将获取没有匹配库存余额的行,但在查询的where子句中添加等将删除没有库存余额的行号

  • 问题内容: 可以使用Hibernate标准吗? 问题答案: 我遇到了完全相同的问题,并能够像这样解决它: 注:,和在上面的代码指在属性名,和类,相应地(类具有属性等)。 对于此解决方案,您甚至不需要在中设置和参数。