Java 通过关系查找的Spring数据粗略存储
我想选择所有具有状态为new的任何条形图的Foo实体 以下是我尝试过的:Java 通过关系查找的Spring数据粗略存储,java,sql,spring,spring-data,spring-data-jpa,Java,Sql,Spring,Spring Data,Spring Data Jpa,我想选择所有具有状态为new的任何条形图的Foo实体 以下是我尝试过的: @Entity @Table(name = "FOO") class Foo { @Id @Column(name = "ID") @GeneratedValue(strategy= GenerationType.IDENTITY) private Long id; @OneToMany private Set<Bar> bars; //... }
@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);
}
我还尝试编写join语句:
select f from Foo f inner join f.bars b where b.status = 'NEW'
我想你错过了这样的事情
@OneToMany(mappedBy = "foo")
private Set<Bar> bars;
@OneToMany(mappedBy=“foo”)
私人酒吧;
我想你错过了这样的东西
@OneToMany(mappedBy = "foo")
private Set<Bar> bars;
@OneToMany(mappedBy=“foo”)
私人酒吧;
加入一对多关系有时会很棘手。(还有另一个正确的答案,您可以参考)
在这种情况下,您可以通过从栏
侧向上查看,以相反的方式进行操作(假设您的关系是双向的):
select bar.foo from Bar bar where bar.status = 'NEW'
加入一对多关系有时会很棘手。(还有另一个正确的答案,您可以参考) 在这种情况下,您可以通过从
栏
侧向上查看,以相反的方式进行操作(假设您的关系是双向的):
select bar.foo from Bar bar where bar.status = 'NEW'
你忘记了“AS”你忘记了“AS”实际上我也丢失了
@JoinColumn(name=“Bar”)
@Benedictus它不一定“丢失”,因为Hibernate可以推断出列名(尽管名称可能不是你想要的),实际上我也丢失了@JoinColumn(name=“Bar”)
@Benedictus它不一定“丢失”,因为Hibernate可以推断列名(尽管名称可能不是您想要的)