一、新闻首页
在NewRepository中添加接口(按照是否推荐进行查询):
@Query("select n from News n where n.recommend = true")
List<News> findTop(Pageable p);
1.在NewService中添加接口,并在Impl中实现
1.1接口:
//主页显示新闻列表
Page<News> listNew(Pageable pageable);
//主页推荐最新新闻列表
List<News> listRecommendNewTop(Integer size);
1.2实现:
@Override
public Page<News> listNew(Pageable pageable) {
return newRepository.findAll(pageable);
}
@Override
public List<News> listRecommendNewTop(Integer size) {
Sort sort = Sort.by(Sort.Direction.DESC,"updateTime");
Pageable pageable = PageRequest.of(0,size,sort);
return newRepository.findTop(pageable);
}
2.在TypeRepository类中添加接口(查询类型最多的新闻种类),在TagRepository类中添加接口(查询标签数目最多的新闻)
TypeRepository:
@Query("select t from Type t")
List<Type> findTop(Pageable pageable);
TagRepository:
@Query("select t from Tag t")
List<Tag> findTop(Pageable p);
3.在Service和Impl中写入与上面数据库查询相对应的逻辑实现
TypeService接口
List<Type> listTypeTop(Integer size);
TypeServiceImpl实现
@Override
public List<Type> listTypeTop(Integer size) {
Sort sort = Sort.by(Sort.Direction.DESC,"news.size");
Pageable pageable = PageRequest.of(0,size,sort)