私はID、名前、色、形状の4つの列を持つテーブルフルーツを持っています。表中のJPA Query.getResultList()からカスタマイズされたTOへのマッピングリスト
エントリは次のようになります。
1, apple, red, round
2, banana, yellow, long
3, tomato, red, round
4, orange, orange, round
は今、私は上記の表にマッピングされたエンティティクラスのフルーツを作りました。私のDAOクラスで
@Entity
@Table(name="fruit")
public class Fruit implements Serializable {
@Id
@Column(name="ID")
String id;
@Column(name="NAME")
String name;
@Column(name="COLOR")
String color;
@Column(name="SHAPE")
String shape;
//getters/setters goes here
}
は、コードは次のとおりです。
String myQuery = "Select f.shape, f.name from Fruit f where f.shape = :shape";
Query query = this.em.createQuery(myQuery);
query.setParameter("shape", "round");
明らかなように、クエリの上で実行すると、3行を返します。
私は、クエリによって返される行に準拠するために、この
class FruitSearchTO
{
String shape;
String name;
//getters/setters here
}
クラスFruitSearchTO TOシンプルを持っています。
しかし、私のDAOで実行されているようなもの:
List<FruitSearchTO> fruitList = new ArrayList<FruitSearchTO>();
fruitList = query.getResultList();
が例外java.lang.ClassCastExceptionがを投げている:[Ljava.lang.Object。 FruitSearchTOと互換性がありません]
ここで私は間違っていますが、これに対する解決策は何ですか?位置1の
ありがとうございました。私はこれを試してみましょう! – Nik
あなたは以前の答えを貼り付けてください。私はHibernateの古いバージョンを使用していて、ResultTransformerメソッドを持っていません。 – Nik
が手に入りました!ありがとう..私はバージョンの問題のため、上記の答えを確認できませんでした。しかし、イテレーターのバージョンは動作しました! – Nik