查询"FOR XML PATH"的休眠错误



我需要一些帮助

我正在使用我的 Spring 启动、JPA 存储库和数据库是 SQL Server 2012;我所有的存储库都运行良好,但我在执行下一个查询时遇到了问题:

@Query(value = "SELECT A_DOCUMENT FROM DOCUMENT WHERE C_DOCUMENT = ?1 FOR XML PATH('')", nativeQuery = true)
List<Object[]> findAdocumentByCdocument(Integer cdocument);

我收到下一个错误:

org.hibernate.MappingException: No JDBC 类型的方言映射: -16 at org.hibernate.dialect.TypeNames.get(TypeNames.java:70) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] at org.hibernate.dialect.TypeNames.get(TypeNames.java:101) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] at org.hibernate.dialect.Dialect.getHibernateTypeName(Dialect.java:666) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] at org.hibernate.loader.custom.JdbcResultMetadata.getHibernateType(JdbcResultMetadata.java:77) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] at org.hibernate.loader.custom.ScalarResultColumnProcessor.performDiscovery(ScalarResultColumnProcessor.java:45) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] at org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:487) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final] at org.hibernate.loader.Loader.getResultSet(Loader.java:2125) ~[hibernate-core-5.0.12.Final.jar:5.0.12.Final]

知道如何在 JPA 上执行此查询?

谢谢

由于返回类型未注册到Hibernate因此我们收到异常,因此请尝试将结果CASTtext

@Query(value = "SELECT CAST(A_DOCUMENT AS text) FROM DOCUMENT WHERE C_DOCUMENT = ?1 FOR XML PATH('')",
nativeQuery = true)
List<String> findAdocumentByCdocument(Integer cdocument);    

最新更新