首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@SqlResultSetMapping不使用日期字段

@SqlResultSetMapping不使用日期字段
EN

Stack Overflow用户
提问于 2019-02-18 10:11:44
回答 1查看 1K关注 0票数 1

下面是非常简单的代码。

代码语言:javascript
复制
@SqlResultSetMapping(name="getTestTable", classes = {
    @ConstructorResult(targetClass = someEntity.class, 
    columns = {
            @ColumnResult(name="some_date", type=Date.class)
    
    })
})

查询:

代码语言:javascript
复制
   getEntityManager().createNativeQuery("SELECT distinct some_date from test " );

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

实体: someEntity

代码语言:javascript
复制
       @Column(name = "some_date")
       @JsonFormat(pattern="dd/MM/yyyy")
       private Date someDate;


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

在'someDate‘列中有数据,查询在someDate上运行良好,但是当运行上面的代码时,"some_date“总是为null。

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

我甚至转换了日期格式,并在代码中声明了字段字符串,但是没有工作。

EN

回答 1

Stack Overflow用户

发布于 2019-02-18 10:31:29

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

代码语言:javascript
复制
   @Column(name = "some_date")
   @Temporal(TemporalType.DATE)
   @JsonFormat(pattern="dd/MM/yyyy")
   private Date someDate;

2)将本机查询定义为NamedNativeQuery:

代码语言:javascript
复制
@NamedNativeQuery(name = "testTableNativeQuery",
  query = "SELECT distinct some_date from test",
  resultSetMapping = "getTestTable")

3)更新查询执行:

代码语言:javascript
复制
getEntityManager().createNamedQuery("testTableNativeQuery", someEntity.class).getResultList();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54744825

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档