【发布时间】:2010-12-02 12:28:22
【问题描述】:
我有 2 节课:
class A {
B b;
public A() {}
public A(B b) { setB(b); }
...
}
class B {
int id;
public B(int id) { setId(id); }
}
在 hql 我想这样选择:
select new A( new B(a.b.id) ) from A a
但我得到了错误
org.hibernate.hql.PARSER - 第 1:48 行:意外令牌:,
是否可以在参数中创建对象,或者只选择字段并在构造函数中创建它?
【问题讨论】:
-
你到底想要什么?为什么这里要使用
new,就不能直接使用SELECT a ...吗? -
这个类的字段比较多,我不想选择。
-
witch "select new A(a.b.id) from A a" hibernate 将只为该字段生成选择,而不为其他急切的字段生成选择。我想要的是获取对象而不是 int 值。但是在 B 中也有一些我不需要的热切领域,因此我不想获得完整的 B 对象。