0

私の問題は未熟に見えるかもしれませんが、私は春に慣れていません。

ここに私が立ち往生している大きな障害があります。JDBC、Hibernate、または JPA とリポジトリを選択するかどうかにかかわらず、ワイルドカードに基づいて検索ロジックを実装するための正しいアプローチを選択しようとしています。

問題をデモンストレーションします。Web ページ内に検索フォームがあり、誰かがクエリを入力して FirstName と LastName を取得し、たとえばレコードがあるとします。

  • 「フレッド・フレドリクソン」
  • 「アルバート・ジェイムソン」
  • 「ワトソン・ダルボット」

*alb* のようなものを使用することが可能です。

  • 「アルバート・ジェイムソン」
  • 「ワトソン・ダルボット」

または ????son を使用すると、"Albert Jameson" のみが取得されると予想されます。

Spring を学習すると、「like」句は次のようにハードコードされているだけであることがわかりました。

@Query("select u from User u where u.firstname like %?1") List findByFirstnameEndsWith(String firstname);

JPAリポジトリを使用する場合。

私の問題が少し明確になったことを願っています。

あらゆる種類のヘルプまたは関連するアドバイスを事前に感謝します。

4

1 に答える 1

0

次の例ではJPAを使用します

@NamedQuery(name="Profile.getPerson", query="SELECT u FROM User u WHERE u.firstName LIKE ?1");

Query query = session.getNamedQuery("Profile.getPerson");
query.setParameter(1, patternYouWant);        
query.getResultList();
于 2013-06-07T19:19:07.393 に答える