Hibernate HQL左连接查询

时间:2014-05-08 08:38:49

标签: java hibernate jpa

我有两个表需要加入,但实体中没有指定关系。我可以写点像

select uc.id, uc.name, mpn.name from UCR uc, MpnMapping mpn

我收到一个错误,名为线程中的异常" main" org.hibernate.hql.ast.QuerySyntaxException:意外令牌

2 个答案:

答案 0 :(得分:0)

是的,您可以通过在where子句中指定连接来实现。必须是这样的:

select a, b from A a, B b where a.joinColumn = b.joinColumn

您可以在以下链接中看到更多信息:

Joining two unrelated tables in hibernate

http://www.codewrecks.com/blog/index.php/2009/09/04/theta-join-in-hql-join-with-unrelated-entities/

答案 1 :(得分:0)

是的,您可以使用new运算符和DTO类来设置值。

查询

 select new com.example.UCRMNP(uc.id, uc.name, mpn.name) from UCR uc, MpnMapping mpn;

DTO课程

首先可以创建一个DTO类并指定所有列变量,比如

class UCRMNP{
 int id;
 String name;
 String name1;
 public UCRMNP( int id, String name, String name1){
 this.id=id;
 this.name=name;
 this.name1=name1;
}
}
  

现在您可以将检索到的数据设置为特定的DTO类,您不希望这样   用任何东西注释它,只需指定构造函数并执行即可   查询使用new运算符。