您的查询是有效的JPQL,并没有使用Hibernate特定的功能(只是空间和酒吧之间缺少)。在JPA 2.0规范(4.4.5加入)这是与以下说明的话:
内连接可以通过使用笛卡尔 产物被隐式地指定在FROM子句和WHERE子句中连接条件。 在没有连接条件的情况下,这会减少到产品的直角坐标 。
这种广义式连接的主要用例是当 连接条件不涉及映射到实体关系的 外键关系。例如:选择c从客户C,
员工e其中c.hatsize = e.shoesize
到您的查询的主要区别是,你的选择包含两种类型的实体。查询的结果是对象[]的列表。阵列中元素的顺序与选择 声明中的顺序相同。以下作品在你的情况下:
String query =
"select foo, bar from FooEntity as foo, BarEntity as bar "+
"where foo.someothercol = 'foo' and foo.somecol = bar.somecol";
List<Object[]> results = em.createQuery(query).getResultList();
for (Object[] fooAndBar: results) {
FooEntity foo = (FooEntity) fooAndBar[0];
BarEntity bar = (BarEntity) fooAndBar[1];
//do something with foo and bar
}
酒吧之间的空间不足,并终止! – 2016-10-28 01:20:08