2016-09-25 20 views
0

私は著者組み込み(@ManyToOne)とエンティティブックを持っていると私は著者のファーストネームで本を検索するリポジトリを使用しています:埋め込みエンティティの値をSpringリポジトリで検索するにはどうすればよいですか?

パブリックインターフェイスBookRepositoryは、私は私のカスタムの両方を試してみましたCrudRepository {

//@Query("SELECT b from Book b INNER JOIN b.author a WHERE a.lastname = ?#{[0]}") 
public Iterable<Book> findByAuthorLastname(String lastname); 

を拡張それを使わないでなぜそれは失敗するのですか?

エンティティ:

@Entity 
@Table(name = "BOOK") 
public class Book { 

@ManyToOne 
@JoinColumn(name = "AUTHOR_ID") 
private Author author; 

// other fields, getters and setters 

} 

@Entity 
@Table(name = "AUTHOR") 
public class Author { 

@Column(name = "LASTNAME") 
private String lastname; 

@OneToMany(cascade = CascadeType.ALL, mappedBy = "author") 
List<Book> books = new ArrayList<Book>(); 

// other fields, getters and setters 
} 
+0

エラースタックトレースとクエリも表示できます – mhasan

+0

私は何もエラーがありません。クエリは単に0を返します。理由はわかりません –

答えて

0

あなたは、フィールドauthorLastNameで検索します、ので、あなたが失敗しています。複雑なクエリの場合は、アノテーション@Queryを使用する必要があります。

+0

私が使用したクエリはauthorLastnameの上にコメントされています。それはあまりにも機能しませんでした。何か問題がありますか? –

関連する問題