我有两个表需要加入,但实体中没有指定关系。我可以写点像
select uc.id, uc.name, mpn.name from UCR uc, MpnMapping mpn
我收到一个错误,名为线程中的异常" main" org.hibernate.hql.ast.QuerySyntaxException:意外令牌
答案 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运算符。