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