2012-01-15 10 views
4

のための記述がありませんが、私はそれが私の「車」クラスは次のように定義されてEclipseLinkのエラー:例外説明:私はちょうどEclipseLinkを持つ単純なネイティブクエリを作成したいクラス

@Repository("CarsRepository") 
public class JpaCarsRepository { 

    @PersistenceContext 
    private EntityManager em; 

    public List<Car> getCars(){ 
    Query q=em.createNativeQuery("SELECT id,name_car FROM CARS",Car.class); 
    List<Car> results=q.getResultList(); 

動作させることはできません@エンティティ。 (私のpersistence.xmlには基本的な接続設定があります)クラス 'Car'の 'Missing descriptor'エラーが表示されます。

どうしてですか?私はsimilar questionを見て私を助けませんでした。

第二の質問:

私は「createNativeQuery」関数(Car.class)の第二のパラメータを指定しない場合、それはオブジェクトのリストを返しますので、私はresults.get(0)を見ることができます値は[1台]です。私はオブジェクトのリストを反復処理することができます。だから、

Object o=results.get(0) 

私は車を作成することができますオブジェクトを手動で、私は、私はoを印刷する場合、オブジェクトの最初の値を取得する方法がわからない場合は[0] [ある(オブジェクトの値1を取得します1台の車])次のエラーが発生する式の型は配列型である必要がありますが、オブジェクトに解決する必要があります

オブジェクトの各値にはどうすればアクセスできますか?

答えて

2

Carはエンティティとはみなされませんが、スキャンされていないようです。 persistence.xmlのclass-element内にあなたのエンティティをリストするのは助けになりますか?

2回目の試行でオブジェクト配列のリストが返されます。アクセス値を使用すると、最初の配列オブジェクトに設定、結果の1行にキャストしています

Object[] o=results.get(0) 
//types below are just guessed: 
Integer id = o[0]; 
String name = o[1]; 
+0

は私がいない成功を収めてpersistence.xmlでpreviosuly私のエンティティを追加しましたが、再試行の後に私は私のエラーが指定されなかったが分かりました@Id、および@Column(name = "columname")を車モデルクラスのプロパティ – de3

+0

詳細な回答はhttp://stackoverflow.com/a/19712522/641103で与えられています。 –

関連する問題