gpt4 book ai didi

mysql - @SqlResultSetMapping 不适用于日期字段

转载 作者:行者123 更新时间:2023-11-29 16:16:40 26 4
gpt4 key购买 nike

我有以下非常简单的代码。

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

实体:一些实体

       @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,但没有任何效果。

最佳答案

1) 当您使用 java.util.Date 时,您应该使用时间类型标记日期字段:

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

2) 将 native 查询定义为 NamedNativeQuery:

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

3)更新您的查询执行:

getEntityManager().createNamedQuery("testTableNativeQuery", someEntity.class).getResultList();

关于mysql - @SqlResultSetMapping 不适用于日期字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54744825/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com