【发布时间】:2015-07-09 08:16:53
【问题描述】:
我的 Spring 存储库接口方法需要 jpql 查询,以检索给定学期的所有帖子。
@LazyCollection(LazyCollectionOption.FALSE)
@OneToMany(cascade = CascadeType.MERGE)
@JoinTable
(
name = "semester_post",
joinColumns = {@JoinColumn(name = "semester_id", referencedColumnName = "id")},
inverseJoinColumns = {@JoinColumn(name = "post_id", referencedColumnName = "id", unique = true)}
)
private List<PostEntity<?>> posts = new ArrayList<>();
PostEntity 没有对 Semester 的引用,我也不想添加,因为我计划将此 PostEntity 用于 Semester 以外的其他事情。也许我会有另一个类(比如说 Group),它也会有一个 PostEntity 的 OneToMany(就像学期中的那个)
那么,我该如何将这个 SQL 查询写成 JPQL 查询呢?
select * from posts join semester_post on semester_post.post_id = posts.id where semester_post.semester_id = 1;
我的仓库
public interface PostRepository extends JpaRepository<PostEntity, Long> {
String QUERY = "SELECT p FROM PostEntity p ... where semester = :semesterId";
@Query(MY_QUERY)
public List<PostEntity> findBySemesterOrderByModifiedDateDesc(@Param("semesterId") Long semesterId);
【问题讨论】:
标签: java hibernate jpa spring-data jpql