@SqlResultSetMapping не работает с полем даты - PullRequest
0 голосов
/ 18 февраля 2019

У меня следующий очень простой код.

@SqlResultSetMapping(name="getTestTable", classes = {
    @ConstructorResult(targetClass = someEntity.class, 
    columns = {
            @ColumnResult(name="some_date", type=Date.class)

    })
})

Запрос:

   getEntityManager().createNativeQuery("SELECT distinct some_date from test " );

    List<someList > list=query. getResultList();

Entity: someEntity

       @Column(name = "some_date")
       @JsonFormat(pattern="dd/MM/yyyy")
       private Date someDate;


     public someEntity(java.util.Date someDate) {
    super();
    this.someDate= someDate;
}

В столбце someDate есть данныеи запрос работает нормально на Sql-Editor, но при запуске выше кода «some_date» всегда нулевой.

Что не так в этом коде?Как мне получить значение для даты?

Любая помощь будет очень полезна, так как я уже потратил столько времени на эту проблему и ничего не получил. Даже преобразовал формат даты и объявил поле String в коде, но ничего не получалось.

1 Ответ

0 голосов
/ 18 февраля 2019

1) Поскольку вы используете java.util.Date, вы должны пометить поле даты с временным типом:

   @Column(name = "some_date")
   @Temporal(TemporalType.DATE)
   @JsonFormat(pattern="dd/MM/yyyy")
   private Date someDate;

2) Определить ваш роднойзапрос как NamedNativeQuery:

@NamedNativeQuery(name = "testTableNativeQuery",
  query = "SELECT distinct some_date from test",
  resultSetMapping = "getTestTable")

3) Обновление выполнения запроса:

getEntityManager().createNamedQuery("testTableNativeQuery", someEntity.class).getResultList();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...