2017-11-06 12 views
0

私は私の問題の短い(ワン・メソッド・ロング)解決策を探します。 私はと同じこと春データでクエリ書きたい:私はその都市や故郷一つに指定された値に等しいユーザーを検索する方法を何のアイデアを持っていない異なるフィールドの同じ値を持つスプリングデータでエンティティを見つけるにはどうすればよいですか?

List<User> findDistinctCity_findByHomeTown(String city); 

を試してみました

select * from Users 
where city = @EnteredData data OR homeTown = @EnteredData 

を方法。

答えて

1

私は以下のバージョンを使用します。私はより良いJPQLはスニペット

List<User> findByCityOrHometowm(String name); 

春データは、DSL 1

@Query("select u from User u where u.city = :city or u.homeTown = :city") public List<User> getUserInfo(@Param("city") String city); 
+0

私はこのように知っています。しかし、私はそれが汚いと思う。私はjpqlのためにJDBCを使用することができます。しかし、私は春のデータを持っており、私は抽象レベルを使用したい。 –

+1

これはSpringデータで@Queryが導入された種類のユースケースです。これは春のデータを使っています。 –

+0

これが最も簡単な方法です。そのため、@Queryアノテーションが必要です。 Uは、メソッドに固執すれば、膨大な時間を待っています。 – VimalKumar

0

を生成代わりに使用しようとしているのUは、メソッドのクエリを使用して追加またはクエリにすることができます私自身のクエリを記述することは

where x.city= ?1 or x.hometown = ?2 
として作成されます。
+0

これは、2つのメソッド引数を持ち、その名前を2回渡す必要があります –

関連する問題