NamedQuery
これは私Hibernate
のサンプルコードです。
NamedQuery
@NamedQuery(name="com.company.generic.model.Student.getByID()",query="select name from com.company.generic.model.Student where id=:id")
Java Code
private Student getStudentNameById(Integer id)
{
final Session session = ....
final Query query = session.getNamedQuery("com.company.generic.model.Student.getByID()")
.setParameter("id",id)
.setResultTransformer(Transformers.aliasToBean(Student.class));
final Student student = (Student)query.uniqueResult();
return student;
}
クエリがすべての列を返す場合はresultTransformer
問題なく動作しますが、少数の列のみを返す場合は戻ります
Exception in thread "main" org.hibernate.PropertyNotFoundException: Could not find setter for 0 on class com.company.generic.model.Student
私の質問は
1)。すべての列で機能するのに、いくつかの列または 1 つの列だけでは機能しない理由。
2)。resultTransformerを使用したnamedQueryとCriteriaの違いはどれですか。namedQueryにはsetProjectionが必要ですか?
3)。独自のトランスフォーマーを作成する必要がありますか? 回避策はありますか...?
どうもありがとう...