2012-01-09 12 views
1

hibernate SQLクエリを使用してデータベースからブールデータをフェッチすると、次のエラートレースが発生します。ローカルマシンでは正常に動作しています。私EmployeeDTO.javahibernate createSQLQueryを使用してデータベースからブール値をフェッチできません

private boolean extraTask; 

//getters and setters 

public boolean getExtraTask() 
    { 
     return extraTask; 
    } 
public void setExtraTask(boolean extraTask) 
    { 
     this.extraTask = extraTask; 
    } 

休止createSQLQueryが似ているで

javax.faces.el.EvaluationException: org.hibernate.PropertyAccessException: IllegalArgumentException occurred while calling setter of com.fetchinglife.domain.data.dto.EmployeeDTO.extraTask 

Query query = session.createSQLQuery("select e.firstName, e.extraTask from Employee as e where e.id= :userId").setResultTransformer(new AliasToBeanResultTransformer(EmployeeDTO.class)); 
query.setParameter("userId", userId); 

答えて

0

私の推測では、あなたがHQLのではなく、SQLを使用しているため、Hibernateはそのマッピングを使用することはできませんということです情報とそのデータベース方言を使用して、データベース内の内容をブール値に変換します。なぜこのようなクエリにHQLを使用しないのですか? HQLはSQLクエリと同じです:

session.createQuery("select e.firstName, e.extraTask from Employee as e where e.id= :userId") 
+0

2つのテーブルを結合することも、hibernate createSQLQueryでどのように使用するのですか? – NaaN

+0

HQLはエンティティ間の結合を完全に行うことができます。 http://docs.jboss.org/hibernate/core/3.6/reference/en-US/html_single/#queryhqlを読んでください。 –

関連する問題