![](/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.