Аннотация Spring Query - PullRequest
       21

Аннотация Spring Query

0 голосов
/ 17 декабря 2018

У меня проблема с аннотацией Spring @Query.Мне ничего не возвращается из postgresql, несмотря на то, что записей много.Я полагаю, что это из-за того, что в БД, например.section_id вместо столбца раздела.Из метода ниже у меня есть все данные.

@Query("select p.id, p.dataContentType, p.changeDate, p.name, p.section.id, p.line.id, p.type.id, "
    + "p.status.id, p.changeUser.id, p.insertDate, p.deletedDate, p.recNum, p.actual, p.previous.id, p.thumbnail "
    + "from Picture p where p.actual=true")
Page<Object[]> findAllWithoutData(Pageable pageable);

Однако мне нужен метод, подобный приведенному ниже, который возвращает меня Картинка:

@Query("select new Picture(p.id, p.dataContentType, p.changeDate, p.name, p.section, p.line, p.type, "
        + "p.status, p.changeUser, p.insertDate, p.deletedDate, p.recNum, p.actual, p.previous, p.thumbnail) "
        + "from Picture p where p.actual=true")
Page<Picture> findAllWithoutData(Pageable pageable);

Вот моя сущность:

public class Picture implements Serializable {

private Long id;
private byte[] data;
private String dataContentType;
private ZonedDateTime changeDate;
private String name;
private Section section;
private Line line;
private DictionaryValue type;
private DictionaryValue status;
private User changeUser;
private ZonedDateTime insertDate;
private ZonedDateTime deletedDate;
private Long recNum;
private Boolean actual;
private Picture previous;
private byte[] thumbnail;

public Picture(Long id, String dataContentType, ZonedDateTime changeDate, String name, Section section,
        Line line, DictionaryValue type, DictionaryValue status, User changeUser, ZonedDateTime insertDate,
        ZonedDateTime deletedDate, Long recNum, Boolean actual, Picture previous, byte[] thumbnail) {
    this.id = id;
    this.dataContentType = dataContentType;
    this.changeDate = changeDate;
    this.name = name;
    this.section = section;
    this.line = line;
    this.type = type;
    this.status = status;
    this.changeUser = changeUser;
    this.insertDate = insertDate;
    this.deletedDate = deletedDate;
    this.recNum = recNum;
    this.actual = actual;
    this.previous = previous;
    this.thumbnail = thumbnail;
}

1 Ответ

0 голосов
/ 17 декабря 2018

Попробуйте что-то вроде:

@Query("select p from Picture p where p.actual=true")
Page<Picture> findAllWithoutData(Pageable pageable);

Кроме того, вам нужно будет оставить пустой конструктор для вашей сущности.

...