![](/img/trans.png)
[英]Why getting NullPointerException when using findBy method of CrudRepository spring-data-dynamodb?
[英]Spring data CrudRepository findBy relationships
我要選擇所有狀態為新的酒吧的所有Foo實體。
這是我嘗試過的:
@Entity
@Table(name = "FOO")
class Foo {
@Id
@Column(name = "ID")
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Long id;
@OneToMany
private Set<Bar> bars;
//...
}
public interface FooRepository extends CrudRepository<Foo, Long> {
@Query("select m from Foo f where f.bars.status = 'NEW' ")
public Page<Foo> findByBarStatus(Pageable pageable);
}
但是我得到:
org.hibernate.exception.SQLGrammarException: could not prepare statement
我還嘗試編寫連接語句:
select f from Foo f inner join f.bars b where b.status = 'NEW'
SELECT f FROM Foo AS f JOIN f.bars AS b WHERE b.status = 'NEW'
我想你錯過了這樣的事情
@OneToMany(mappedBy = "foo")
private Set<Bar> bars;
加入一對多關系有時會很棘手。 (還有一個正確的答案,您可以參考)
在這種情況下,可以通過從“ Bar
側向上查找來反向進行操作(假設您具有雙向關系):
select bar.foo from Bar bar where bar.status = 'NEW'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.