gpt4 book ai didi

java - 如何对@ManyToMany关系中的相关实体进行排序

转载 作者:行者123 更新时间:2023-12-02 03:40:30 25 4
gpt4 key购买 nike

有两个实体POSTTAG,它们通过多对多关系连接。

发布

@ManyToMany
@JoinTable(name = "posts_tags",
joinColumns = @JoinColumn(name = "post_id"),
inverseJoinColumns = @JoinColumn(name = "tag_id"))
private List<Tags> tags = new ArrayList<>();

标签

@ManyToMany(mappedBy = "tags")
@JsonIgnore
private List<Posts> posts = new ArrayList<>();

根据我选择的标签,应该向我显示所有依赖于他的帖子。所有帖子都应使用用户选择的分页和排序来显示。

The problem is that sorting and pagination are ignored.

我的第一次尝试

public Page<Posts>  getPostsByTag(String tag, Integer page, Integer size, String sort, String dir){
Tags tags = tagsRepository.findByTagName(tag);

Pageable pageable = PageRequest.of(page,size, dir.equals("asc") ? Sort.Direction.ASC : Sort.Direction.DESC,sort);

return new PageImpl<>(tags.getPosts(),pageable,tags.getPosts().size());
}

我的第二次尝试

public Page<Posts>  getPostsByTag(String tag, Integer page, Integer size, String sort, String dir){
Tags tags = tagsRepository.findByTagName(tag);

PagedListHolder pagedListHolder = new PagedListHolder(tags.getPosts());
pagedListHolder.setPage(page);
pagedListHolder.setPageSize(size);
pagedListHolder.setSort(new MutableSortDefinition(sort, true ,dir.equals("asc")));

return new PageImpl<>(pagedListHolder.getPageList());
}

第二次尝试时,分页有效,但排序无效。如何对 tags.getPosts() 列表进行排序?

最佳答案

尝试使用 Order By 注释

@ManyToMany(mappedBy = "tags")
@JsonIgnore
@OrderBy("direction")
private List<Posts> posts = new ArrayList<>();

关于java - 如何对@ManyToMany关系中的相关实体进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56839533/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com