I am a novice in Spring Boot. I am making a blog using Spring MVC, but I don't know how to get 5 latest posts in the in-memory database (I don't want to use any database like MySQL, MariaDB,etc right now). The following are classes that I have created so far. In the PostServicesImp, I created a method called findLatest5 and used it in the controllers, it works perfectly. Now I want to use CrudRepository methods. Thanks for reading my posts Post
@Entity
public class Post {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private Long id;
@Column(nullable=false, length=300)
private String title;
@Column(nullable=false)
private String body;
@ManyToOne(optional=false, fetch=FetchType.LAZY)
private Users author;
@Column(nullable=false)
private Date date= new Date();
public Post(){
}
public Post(Long id,String title, String body, Users author){
this.id=id;
this.title=title;
this.body=body;
this.author=author;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getBody() {
return body;
}
public void setBody(String body) {
this.body = body;
}
public Users getAuthor() {
return author;
}
public void setAuthor(Users author) {
this.author = author;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
@Override
public String toString() {
return "Post [id=" + id + ", title=" + title + ", body=" + body + ", author=" + author + ", date=" + date + "]";
}
}
PostRepository
public interface PostRepository extends CrudRepository<Post, Long>{
List<Post> findById(Long id);
List<Post> findByAuthor(String author);
}
PostServices:
public interface PostServices {
List<Post> findLatest5();
}
PostServicesImp
@Service
public class PostServicesImp implements PostServices{
@Autowired
private PostRepository pRepo;
@Override
public List<Post> findLatest5() {
// return pRepo.findLatest5Posts(new PageRequest(0, 5));
return posts.stream().sorted((a,b)-> b.getDate().compareTo(a.getDate()))
.limit(5)
.collect(Collectors.toList());
}
}