0
私は遅延ロードされている2つの子エンティティを持つ親エンティティを持っています。親エンティティは、ダイナミッククエリを使用して、著者のファーストネームに基づいて春データロードすべての遅延初期化された子テーブル親から
@Entity
public class Author {
@Id
@GeneratedValue
private Long id;
private String firstName;
private String lastName;
@OneToMany(mappedBy ="author",cascade= CascadeType.ALL,fetch=FetchType.LAZY)
private List<Post> posts;
@OneToMany(mappedBy ="author",cascade= CascadeType.ALL,fetch=FetchType.LAZY)
private List<Book> books;
}
ロードすべての書籍や記事にロードされたとき、私は、関連するすべての子エンティティをロードしたいと思います。
public interface AuthorRepository extends CrudRepository<Author, Long> {
public List<Author>findByFirstNameAndPostsAndBooks()
}
上記のFindbyは機能しません。正しいクエリを構築するために私を助けてください。 はまた、私はあなたがこれに照会変更する必要があります彼らのファーストネームで著者をフェッチするには
でも、FetchType Lazyは、私のCRUDリポジトリにfindByPostsTitleというクエリを持っているときに動作します。子テーブルにはwhere句があります。私の問題は、春のデータ動的クエリを使用して子テーブル上の任意の句を指定せずに著者のファーストネームですべての投稿と書籍をロードしたいのですか? – onlinejava
@onlinecarrenあなたはこのような意味ですか? 'public List findByFirstName(String firstname);'これはすべての著者を名前で取得し、jpaは '@ OneToMany'アノテーションのために彼のすべての投稿と書籍を提供します。 –
Patrick
私はパフォーマンスの理由のために必要がない限り私は子テーブルによってロードしたくないので、怠惰な初期化に固執したいと思います – onlinejava