我想通过父实体ID查询我的ManyToMany关系。
我有一个用户,我希望能收到我的用户标记为收藏的所有帖子。
我有两个实体UserEntity
和PostEntity
,还有一个joinTable user_post_favourite
。
@Entity
class UserEntity {@Column
String name;
@OneToMany(cascade = {
CascadeType.PERSIST,
CascadeType.MERGE })
@JoinTable(name = "user_post_favourite",
joinColumns = @JoinColumn(name = "user_id"),
inverseJoinColumns = @JoinColumn(name =
"post_id"))
private List<PostEntity> postFavourites;
}
我的仓库:
public interface UserRepository extends JpaRepository<UserEntity, Long> {
List<PostEntity> findAllPostFavourites_PostId(Long id);
}
使用上面的本机查询不起作用。不确定它是否应该那样工作。 当然,我可以定义一个特定的服务和仓库来访问联接表,但是如果可能的话,我想避免使用它。
答案 0 :(得分:0)
只需创建一个简单的查询:
Select p from User u join u.postFavourites p where u.Id = :userId;