2017-11-21 14 views
0

ネイティブクエリメソッドを使用してデータをフェッチしようとしています。私はバネデータJPAリポジトリ宣言メソッド(findAll()など)を使用してデータを取得でき、JPQLクエリを使用することができます。カラム名を指定するとネイティブクエリが機能しない

  • ネイティブクエリメソッドを使用している場合、「select * from」が機能しています。しかし、 "select username from"メソッドを指定しても機能しません。意味列名を指定すると機能しません。

私は、このように私のコードを追加

@Query(value = "select u.username from users u" , nativeQuery = true) 
List<Users> findByUsername(); 

しかし、ユーザーからのselect *を使用してクエリは問題なく働いています。このネイティブクエリの性質ですか?または、プロバイダが定義する形式の形式に制限はありますか?

誰でも私の混乱を明確にするのに役立つことができますか?

答えて

1

問題はあなたのリターン変数にあると思います。 "* select * from ... *"クエリを実行すると、ユーザーの一覧を返すことができます。

はしかし、あなたは文字列のリストを返す必要がありますように、おそらくvarchar型の列を取得したい:

@Query(value = "select u.username from users u" , nativeQuery = true) 
List<String> findByUsername(); 
+0

はい。その働き。ご回答いただきありがとうございます。 – Jacob

+0

あなたは大歓迎です@PrinceVarghese – ahmetcetin

関連する問題