2016-12-10 16 views
0

BookRepositoryでTypeフィルターを使用しましたが、動作しません。Spring Data Jpaで@JoinTableを照会する方法

Book.java

@Entity 
public class Book { 
    private Long id; 
    private String name; 

    @ManyToOne(fetch = FetchType.LAZY) 
    @JoinTable(
      name = "book_type", 
      joinColumns = @JoinColumn(name = "book_id"), 
      inverseJoinColumns = @JoinColumn(name = "type_id") 
    ) 
    private Type type; 

    // getter and setter 
} 

Type.java

@Entity 
public class Type { 
    private Long id; 
    private String name; 

    @OneToMany(fetch = FetchType.LAZY) 
    @JoinTable(
      name = "book_type", 
      joinColumns = @JoinColumn(name = "type_id"), 
      inverseJoinColumns = @JoinColumn(name = "book_id") 
    ) 
    private Collection<Book> books; 

    // getter and setter 
} 

BookRepository.java

@Repository 
public interface BookRepository extends JpaRepository<Book, Long> { 
    Page<Book> findBookListByType(Type type, Pageable pageable); 
} 

春データJPAがこの機能をサポートしていないではないです。あなたが実行したいのか、クエリDEFINEないのはなぜ

+0

を試してみてください?何がどのような制約で返される必要がありますか?なぜ人々はいくつかのテーブルを結合すると思います...あなたはENTITYと関係を照会しますが、これはSQLの土地ではありません –

答えて

0

この

@Repository 
public interface BookRepository extends JpaRepository<Book, Long> { 

    @Query(value="Select b from Book b where b.type = :type") 
    Page<Book> findAllByType(@Param("type") Type type, Pageable pageable); 

} 
+0

ありがとうございます。 – Ste

+0

エラーは何ですか? –

+0

私はあなたが特定のタイプのすべての本を望んでいると思う! –

関連する問題