orm.xml 中的命名本机查询映射
Named native query mapping in orm.xml
我是 Hibernate 的新手。我正在尝试将基本 SQL 查询外部化为 orm.xml
我的查询
SELECT CURRENT_TIMESTAMP FROM DUAL
我试过以下方法:
<named-native-query
name="JobTrackerEntity.getCurrentTimestamp"
result-class="java.sql.Timestamp">
<query>
SELECT CURRENT_TIMESTAMP FROM DUAL
</query>
</named-native-query>
但是我得到以下错误:
org.hibernate.MappingException: Unknown entity: java.sql.Timestamp
请告诉我如何在 orm.xml 中编写查询。另外,如果我可以参考任何资源以获得更好的理解。
更新:
我在repository接口中添加了一个方法如下:
@Repository
public interface TrackerRepository extends JpaRepository<TrackerEntity, TrackerId> {
@Query(nativeQuery=true)
Timestamp getCurrentTimestamp();
}
我正在调用 getCurrentTimestamp()
来执行查询。
您必须删除 result-class="java.sql.Timestamp"
,因为结果-class 属性 必须是实体。
编辑:
CURRENT_TIMESTAMP
导致 Hibernate 方言中缺少映射。你必须提供你自己的方言,或者如果你不需要你最好使用的时区:
SELECT LOCALTIMESTAMP FROM DUAL
我是 Hibernate 的新手。我正在尝试将基本 SQL 查询外部化为 orm.xml
我的查询
SELECT CURRENT_TIMESTAMP FROM DUAL
我试过以下方法:
<named-native-query
name="JobTrackerEntity.getCurrentTimestamp"
result-class="java.sql.Timestamp">
<query>
SELECT CURRENT_TIMESTAMP FROM DUAL
</query>
</named-native-query>
但是我得到以下错误:
org.hibernate.MappingException: Unknown entity: java.sql.Timestamp
请告诉我如何在 orm.xml 中编写查询。另外,如果我可以参考任何资源以获得更好的理解。
更新:
我在repository接口中添加了一个方法如下:
@Repository
public interface TrackerRepository extends JpaRepository<TrackerEntity, TrackerId> {
@Query(nativeQuery=true)
Timestamp getCurrentTimestamp();
}
我正在调用 getCurrentTimestamp()
来执行查询。
您必须删除 result-class="java.sql.Timestamp"
,因为结果-class 属性 必须是实体。
编辑:
CURRENT_TIMESTAMP
导致 Hibernate 方言中缺少映射。你必须提供你自己的方言,或者如果你不需要你最好使用的时区:
SELECT LOCALTIMESTAMP FROM DUAL