我正在尝试加入多个表来加入使用条件,但遇到一些问题,请帮助我: 我有一个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
这三个表:CutOffTime(有国家),国家,交换(有国家)是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();
}
});
答案 0 :(得分:0)
我认为你不能通过单一连接从休眠中完成它,因为你没有从国家到任何地方的双向关系。所以我认为你必须有2个单独的连接,然后过滤导致第二次加入,使得countrrID(第一次加入的国家ID)