Spring boot orm.xml中的命名本机查询映射
我刚开始冬眠。我正在尝试将基本SQL查询外部化为orm.xml 我的问题Spring boot orm.xml中的命名本机查询映射,spring-boot,hibernate,hibernate-mapping,Spring Boot,Hibernate,Hibernate Mapping,我刚开始冬眠。我正在尝试将基本SQL查询外部化为orm.xml 我的问题 SELECT CURRENT_TIMESTAMP FROM DUAL 我尝试过以下方法: <named-native-query name="JobTrackerEntity.getCurrentTimestamp" result-class="java.sql.Timestamp"> <query> SELECT
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>
请告诉我如何用orm.xml编写查询。此外,如果我可以参考任何资源以获得更好的理解
更新: 我在repository界面中添加了一个方法,如下所示:
@Repository
public interface TrackerRepository extends JpaRepository<TrackerEntity, TrackerId> {
@Query(nativeQuery=true)
Timestamp getCurrentTimestamp();
}
@存储库
公共接口TrackerRepository扩展了JpaRepository{
@查询(nativeQuery=true)
Timestamp getCurrentTimestamp();
}
我正在调用
getCurrentTimestamp()
来执行查询。您必须删除result class=“java.sql.Timestamp”
,因为result类属性必须是一个实体
编辑:
CURRENT_TIMESTAMP
导致Hibernate方言中缺少映射。您必须提供自己的方言,或者如果您不需要您最好使用的时区:
SELECT LOCALTIMESTAMP FROM DUAL
如何执行查询?请展示一些代码
org.springframework.orm.jpa.JpaSystemException:JDBC类型没有方言映射:2014;嵌套异常是org.hibernate.MappingException:JDBC类型没有方言映射:2014
:这是我在mem H2数据库中删除result class=“java.sql.Timestamp
时得到的异常。问题是类型2014(TimestampWithTimezone)没有在Hibernate的H2方言中注册。我会看看我找到了什么我更新了我的答案。你真的需要时区吗?
SELECT LOCALTIMESTAMP FROM DUAL