Spring Data JPA で遊んでみる 〜その5〜

query-lookup-strategyについて。
Spring Data は リポジトリに定義されたメソッドから自動的にクエリを生成することができますが、その戦略です。設定は3つあります。

  • CREATE
  • USE_DECLARED_QUERY
  • CREATE_IF_NOT_FOUND

CREATEはメソッドからクエリを生成します。USE_DECLARED_QUERYはユーザ定義されたクエリを使用します。これは見つからなかったらエラーになります。

CREATE_IF_NOT_FOUNDはこの両方を合わせたやつで、もしユーザ定義のクエリが見つからない場合は、メソッドからクエリを生成します。これがdefaultです。

あんまり、CREATE、USE_DECLARED_QUERYを明示的に指定したいシチュエーションが今のところあまり思いつかないので、特に弄ることもないのかなと思います。

設定はrepositoryの定義をする所で出来ます。例えば

<jpa:repositories base-package="org.yamkazu.springdata" query-lookup-strategy="create-if-not-found"/>

defaultはcreate-if-not-foundなので、create-if-not-foundでいい場合は、明示的に書く必要はありません。