Функция Crudrepository findBy работает только тогда, когда ничего не найдено

#java #spring #jpa

#java #весна #jpa

Вопрос:

В первый раз, когда я реализовал функцию findByContentContaining в репозитории, все работало нормально. Но теперь, когда я вызываю функцию, и если она что-то находит, она выдает мне ошибку. Если она ничего не находит, она возвращает пустой список.

Это мой репозиторий (все работает, кроме функции, содержащей findbycontent):

 public interface KweetRepo extends CrudRepository<Kweet, Integer> {

    Kweet getById(Integer id);

    List<Kweet> findTop10ByPosterId(int id);

    List<Kweet> findByContentContaining(String content);

    List<Kweet> findByPosterId(int id);

}
  

Это модель для моего класса Kweet

 @Entity
public class Kweet implements Comparable<Kweet>{

    @Id
    @GeneratedValue
    private int id;

    @Column(name="content")
    private String content;

    @JsonFormat(shape = JsonFormat.Shape.STRING)
    private Date dateTime;

    @ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
    @JoinColumn(name = "user_id")
    private User poster;

    @OneToMany(cascade = CascadeType.ALL)
    @JoinTable(name="KweetLikedBy")
    private List<User> likedBy;

    public Kweet() {
    }

    public Kweet(String content, Date dateTime, User poster, List<User> likedBy) {
        this.content = content;
        this.dateTime = dateTime;
        this.poster = poster;
        this.likedBy = likedBy;
    }

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getContent() {
        return content;
    }

    public void setContent(String content) {
        this.content = content;
    }

    public Date getDateTime() {
        return dateTime;
    }

    public void setDateTime(Date dateTime) {
        this.dateTime = dateTime;
    }

    public int getPoster() {
        return poster.getId();
    }

    public void setPoster(User poster) {
        this.poster = poster;
    }

    public List<User> getLikedBy() {
        return likedBy;
    }

    public void addLikedBy(User user) {
        this.likedBy.add(user);
    }

    public void removeLikedBy(User user) {
        this.likedBy.remove(user);
    }

    @Override
    public int compareTo(Kweet o) {
        return getDateTime().compareTo(o.getDateTime());
    }
}
  

Комментарии:

1. В чем ошибка?

2. далее, функция find by выдает ошибку

3. Это исключение invocationtargetexception в функции, содержащей findbycontent

4. можете ли вы опубликовать трассировку стека из исключения

5. Опубликуйте трассировку стека как часть вопроса, чтобы помочь понять вашу проблему