@SqlResultSetMapping不使用日期字段

问题描述 投票:0回答:1

我有非常简单的代码。

@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();

实体: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”始终为null。

这段代码有什么问题?我该如何获得约会价值?

任何帮助都会非常感激,因为我已经在这个问题上投入了太多时间并且什么也没得到。甚至在代码中转换了日期格式并声明了字段String但没有任何效果。

mysql hibernate date spring-boot jpa
1个回答
0
投票

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();
© www.soinside.com 2019 - 2024. All rights reserved.