たとえば、エンティティがあります
public class Foo {
private String col1;
private String col2;
private String col3;
private String col4;
//getters and setters
}
私がやりたいのは、 とだけselect
です。しかし、私はすでに以下のようなコンストラクタを持っています:col3
col4
Foo
public Foo (String col1, String col2) {
this.col1 = col1;
this.col2 = col2;
}
したがって、同じ署名を持つため、 col3
andの別のコンストラクターを持つことはできません。col4
これまでに達成しようとしているのは、次のような完全なコンストラクターを作成することです。
public Foo (String col1, String col2, String col3, String col4) {
this.col1 = col1;
this.col2 = col2;
this.col3 = col3;
this.col4 = col4;
}
しかし、クエリで以下のようなことをしようとすると
SELECT new Foo(null, null, f.col3, f.col4)
FROM Foo f
私は得る
org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected end of subtree
私がしようとすると
SELECT new Foo(f.col1, f.col2, f.col3, f.col4)
FROM Foo f
期待どおりに動作します。
編集:
私は試した
Select f.col3, col4..
そして、以下のエラーがスローされました
org.springframework.dao.InvalidDataAccessApiUsageException: Cannot create TypedQuery for query with more than one return using requested result type [com.lala.entity.Foo]; nested exception is java.lang.IllegalArgumentException: Cannot create TypedQuery for query with more than one return using requested result type [com.lala.entity.Foo]