【发布时间】:2020-05-21 06:50:58
【问题描述】:
我正在尝试对 db2 数据库执行完整性检查,所以我写道:
Session session = _sessionFactory.openSession();
try{
return session.createNativeQuery("SELECT CURRENT DATE from sysibm.sysdummy1", Date.class)
.stream().findFirst().orElse(null);
}
catch (Exception e){
session.close();
throw e;
}
其中Date 的类型为java.sql.Date。
我什至尝试将此节点添加到hibernate.cfg.xml 文件中:
<mapping class="java.sql.Date"/>
查询本身工作正常,并返回标记为“1”的“列”,其中单行日期为 yyyy-MM-dd 格式。
但是,当我执行代码时出现错误:
org.hibernate.MappingException:未知实体:java.sql.Date
我错过了什么吗?
【问题讨论】:
-
我认为我们不能将
java.sql.Date用作ORM目的的实体。这可以帮助stackoverflow.com/questions/513317/… -
@ArunSudhakaran 我是 java 菜鸟,所以我可能是错的,但是 .createNativeQuery() 应该按原样获取查询,而不是 HQL。此外,我希望它更像是一个休眠配置问题。
-
是的,这就是我所说的
java.sql.Date是来自java.sql包的一个类,你不能修改它,所以你不能把它作为一个映射类。您应该定义一个具有属性的类,这些属性应该映射到配置文件中的表列。您可以阅读本教程tutorialspoint.com/hibernate/hibernate_configuration.htm -
@ArunSudhakaran 对不起,如果这个问题太愚蠢了,但我真的需要创建 POJO 类来从一列中获取单个值吗?
-
@ArunSudhakaran 我试图创建名为“Single Date”的类,其中包含,猜想是什么,名为 date 的单个属性,映射到列“DATE”。然后我将查询更改为“按日期”接收数据,将“model.mappings.SingleDate”添加到 cfg.xml 文件中,现在我收到“未知实体:model.mappings.SingleDate”