java - Spring data CrudRepository findBy 关系

标签 java sql spring spring-data spring-data-jpa

我想选择所有具有状态为新的 Bar 的 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

我还尝试编写 join 语句:

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'

关于java - Spring data CrudRepository findBy 关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45425834/

相关文章:

php - 使用在线 PHP 文件设置对 DB 的本地调用 - 连接问题

spring - 如何在没有spring-boot的情况下使用eureka+feign?

java - 打包并运行一个带有spring依赖的Java应用

java - Grizzly 嵌入式服务器 + Jersey 服务 + Servlet 过滤器

java - RestTemplate SSL 握手失败 - 连接被丢弃

sql - 对另一个查询的结果执行查询?

mysql - 在不知道第二列值的情况下,在一列中查找在不同列中共享相同值的值

java - 如何检测tomcat连接池问题

java - 如何更改按钮背景并在按下其他按钮后启用它

java - 刷新 jframe 并处理旧框架