当前位置: 首页 > 知识库问答 >
问题:

使用Hibernate条件连接多个表

商泽宇
2023-03-14

我正在尝试使用条件连接多个表,但遇到了一些问题,请帮助我:我有一个sql查询,如:

SELECT  a.type, a.time, c.code AS exchangeCode
 FROM   CutOffTime AS a INNER JOIN
       Country AS b ON a.country_fk = b.id INNER JOIN
       Exchange AS c ON c.country_fk = b.id

这三个表:截止时间(has country)、国家、交易所(has country)是3个实体类。

我如何使用hibernate标准像这样加入,我下面的代码仍然不完整:

 List<Map<String, Object>> aa= ( List<Map<String, Object>>) getHibernateTemplate().executeFind(new HibernateCallback() {
            @Override
            public Object doInHibernate(final Session session) throws HibernateException, SQLException {
                final Criteria c = session.createCriteria(CutOffTime.class,"cutofftime");
                c.createAlias("cutofftime.country", "country");

                final Criteria c2= session.createCriteria(Exchange.class,"exchange");
                c2.createAlias("exchange.country", "country");
//              c.add(Restrictions.eqProperty("cutofftime.country.id","exchange.country.id"));
                return c.list();
            }
        });

共有1个答案

花健
2023-03-14

我认为你无法通过hibernate使用单一连接来完成,因为你没有从国家到任何地方的双向关系。所以我认为你必须有两个独立的连接,然后在第二个连接中过滤结果,这样countrrID in(第一个连接中的国家ID)

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

  • 我试图连接多个表,并将表列映射到用户对象列表。 下面是SQL查询,我正在尝试使用Hibernate条件转换为ORM: 从上面的查询中,我们将获得一个用户对象列表,并尝试将结果映射到用户对象。下面是要形成的用户对象的POJO类。 如何连接多个表和相应列到用户对象的映射? 谢谢你的帮助。。谢谢

  • 我想忽略createAlias中的默认连接限制。我有一段一刀切的关系。 我的问题是Hibernate为连接关系生成默认限制。 波约 注:费用表中没有诊断模板栏。 Charge.java 诊断emplate.java 查询 标准 Hibernate查询 如何避免这种情况?或者我的关系有什么问题? 请帮帮我。。!

  • 问题内容: 我正在尝试使用hibernate条件生成器连接4个表。 下面分别是这些表。 在这4个表中,我想为MySQL执行以下sql脚本: 那么,如何使用Hibernate CriteriaBuilder实现这一目标?请帮助… 预先感谢....... 问题答案: CriteriaBuilder cb = entityManager.getCriteriaBuilder(); CriteriaQue

  • 我的本机查询将类似于:“select*from a inner join b inner join c on a.ida=b.idb and b.lastname=c.lastname and a.name=c.name” 在hibernate中,如果要连接两个表,可以使用@joincolum,如果要通过表B连接表A和表C,可以使用@joincable。 因此在HQL中查询将看起来像:“from

  • 问题内容: 我有两个实体:和。我正在使用Hibernate 3.6。 如何使用休眠标准实现这一目标,最重要的是,我必须将其用于分页。 而“我的道”如下所示以显示jqgrid中的“问题”列表 公共列表showHelpDeskIssues(DetachedCriteria dc,int from,int size){ 对于简短的解释,请参考此问题,如何使用struts2-jqgrid插件在jqgrid