我有非常简单的代码。
@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但没有任何效果。
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();