はじめ
が含まれています私は春データ/ JPA/Hibernateのなどを使用し、(javax.persistence.Entity
で注釈を付け)エンティティいorg.springframework.stereotype.CrudRepository
を拡張リポジトリ経由で取得されています。CrudRepositoryのfindAll()はサブリスト
私はエンティティを持っていますが、それはBob
と呼ばれ、別のタイプのエンティティのリスト、Tom
が含まれています。このリストはList<Tom> toms;
と呼ばれます。これは私のデータベースの多対多の関係です。
@Repository
public interface BobRepository extends CrudRepository<Bob, String> {
public Iterable<Bob> findAllByTomsContains(List<Tom> toms);
}
これは、春には限り私はそれを正しく名前として私のための世話を自動的に実施方法の一つです。
私の質問
私はトムズの提供されたリストは、各ボブに保存されているタムのサブセットであるすべてのボブを取得する必要があります。つまり、メソッドに提供するリストは、Bobエンティティに格納されているリストのサブセットです。
今、上記のコードで、私はトムズリストの各項目についてボブの結果を取得しています。だから私のボブの一人がこれらのToms {"tom-one"、 "tom-two"、 "tom-blue"}と{"tom-one"、 "tom_two"}を検索したら、同じトム。同様に、ボブのリストと一致しない追加のトムを追加すると、最初に一致するトムが実行され、返されます。このようなクエリは、BobsとリストされたすべてのToms以上と一致する必要があります。
私の方法に適した命名規則(現時点ではfindAllByTomsContains
)は何ですか?私の現在の回避策は、リスト内の各Tomによる多くのクエリであり、結果の交差点をマージします(遅い、苦しい)。
状態の非常に紛らわしい説明は))あなたはplsは、それを単純化してもらえますか?または、具体的な例を提供していますか?.. – Cepr0
@ Cepr0それをもっと簡略化する方法がわかりません...エンティティには別のエンティティタイプのリストが含まれています。私が提供するリストがエンティティに格納されているリストのサブセット/リストである場合にのみ、私のデータベースから最初のエンティティタイプをすべて取得する必要があります。この質問に答えるには、Springに慣れている必要があります。 –