2016-09-25 10 views
0

我有作者的嵌入式(@ManyToOne)的實體書和我使用的庫依作者的姓名搜索一本書:如何在spring repository中嵌入實體的值後進行搜索?

公共接口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上面註釋。它雖然沒有工作。它有什麼問題嗎? –

相關問題