【发布时间】:2016-04-05 10:00:56
【问题描述】:
我有以下实体:
@Entity
@Table(name = "BOOKS")
public class Book {
@Id
private Long id;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "BOOK_ID")
private List<Page> pages = new ArrayList<>();
...
...
}
@Entity
@Table(name = "PAGES")
public class Page {
@Id
private Long id;
@Column(name = "COLOR", nullable = false)
private String color;
...
...
}
给定一个特定的页面,我想找出它所属的书(例如根据页面的颜色)。
在数据库中生成表后,使用 liquibase,我可以执行以下查询:
select * from Books where id in (select book_id from Pages where color = ?)
我正在使用 Spring Data (JpaRepository),但是当我尝试编写 JPQL 查询时,我发现我不能......因为关系是单向的(我不想更改)。
我的问题是 - 我该如何编写这个查询?
【问题讨论】:
标签: java jpa orm spring-data jpql