クエリから直接EmployeeForm
にデータを取得することはできますか?結合されたテーブルから直接クラスにデータをフェッチする方法は?
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.emp.form.EmployeeForm
クエリから直接EmployeeForm
にデータを取得することはできますか?結合されたテーブルから直接クラスにデータをフェッチする方法は?
java.lang.ClassCastException: [Ljava.lang.Object; cannot be cast to com.emp.form.EmployeeForm
あなたはResultTransformer
のThを使用する必要があります。
SELECT a.name,b.username,b.password FROM Tbemployee left join Tbuser
コード
List<EmployeeForm> form = new ArrayList<EmployeeForm>();
EmpDB service = (EmpDB) RuntimeAccess.getInstance().getServiceBean(
service.begin();
Session session = service.getDataServiceManager().getSession();
SQLQuery query = session.createSQLQuery("EXEC empdata");
List list = query.list();
formList = list;
empdataストアドプロシージャとしてクエリこれは私にエラーを与えます他のオプションは、クエリ結果の列を含む行を含むList<Object[]>
にキャストし、次にデータを反復して抽出します(より多くの作業)。
変圧器のようなものが考えられます。オブジェクト/リレーショナルマッピングのために
query.setResultTransformer(Transformers.aliasToBean(EmployeeForm.class));
これは動作しますが、日付カラムを追加するとエラーが出ます "org.hibernate.property.BasicPropertyAccessor - 予想されるタイプ:java.util.Date、実際の値:java。 lang.String "このresulttransformerはすべての値の文字列を返しますか? –
いいえ、DB側のカラムが日付の場合は、日付とともに使用できます。 – isah
エラーは消えました。私の日付はdatetimeなので、エラーの原因と思われる日付に変換するためにキャストを使用しましたか?ヌル値も受け入れますか? –
使用[JPA](http://docs.oracle.com/javaee/6/tutorial/doc/bnbpz.html)。 – zombie
データベース内のテーブルではないエンティティを作成できると言っていますか? –
はい、そのために 'ResultTransformer'を使用してください。 – zombie