JPA SQL Server 没有 JDBC 类型的方言映射:-9

2023-12-15

我正在编写一个本机查询,例如

Query query = 
  entityManagerUtil.getEntityManager().createNativeQuery("SELECT c.NodeID,c.Code,c.Name FROM COM_Location c");    
query.getResultList();

但这对我不起作用......

我正在使用 JPA 、MSSQL Server 2008 和 Spring。当我尝试使用 pojo 类编写 JPA 查询但无法执行本机查询时,它工作正常。

我的配置在persistance.xml像这样

<property name="hibernate.dialect" value="org.hibernate.dialect.SQLServerDialect"/>

有人建议我解决这个问题

我的堆栈跟踪显示...

org.springframework.orm.jpa.JpaSystemException: org.hibernate.MappingException: No Dialect mapping for JDBC type: -9; nested exception is javax.persistence.PersistenceException: org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
    at org.springframework.orm.jpa.EntityManagerFactoryUtils.convertJpaAccessExceptionIfPossible(EntityManagerFactoryUtils.java:311)
    at org.springframework.orm.jpa.aspectj.JpaExceptionTranslatorAspect.ajc$afterThrowing$org_springframework_orm_jpa_aspectj_JpaExceptionTranslatorAspect$1$18a1ac9(JpaExceptionTranslatorAspect.aj:15)
    at com.iconma.carz.daoimpl.SecurityDaoImpl.getAllLocations(SecurityDaoImpl.java:40)
    at com.iconma.carz.serviceimpl.SecurityServiceImpl.getAllLocations(SecurityServiceImpl.java:31)
    at com.iconma.carz.controllers.SecurityController.getLocations(SecurityController.java:51)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
    at java.lang.reflect.Method.invoke(Method.java:597)
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:176)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:426)
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:414)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:790)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:719)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:644)
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:549)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:304)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.springframework.web.filter.RequestContextFilter.doFilterInternal(RequestContextFilter.java:83)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:240)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:164)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:462)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:164)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:562)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:395)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:250)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:188)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:166)
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:302)
    at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
    at java.lang.Thread.run(Thread.java:662)
Caused by: javax.persistence.PersistenceException: org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1214)
    at org.hibernate.ejb.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1147)
    at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:255)
    ... 37 more
Caused by: org.hibernate.MappingException: No Dialect mapping for JDBC type: -9
    at org.hibernate.dialect.TypeNames.get(TypeNames.java:77)
    at org.hibernate.dialect.TypeNames.get(TypeNames.java:100)
    at org.hibernate.dialect.Dialect.getHibernateTypeName(Dialect.java:375)
    at org.hibernate.loader.custom.CustomLoader$Metadata.getHibernateType(CustomLoader.java:590)
    at org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.performDiscovery(CustomLoader.java:516)
    at org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:532)
    at org.hibernate.loader.Loader.getResultSet(Loader.java:1962)
    at org.hibernate.loader.Loader.doQuery(Loader.java:802)
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:274)
    at org.hibernate.loader.Loader.doList(Loader.java:2533)
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2276)
    at org.hibernate.loader.Loader.list(Loader.java:2271)
    at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:316)
    at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1842)
    at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:165)
    at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:157)
    at org.hibernate.ejb.QueryImpl.getResultList(QueryImpl.java:246)
    ... 37 more

首先,您必须定义要使用的方言类名称: 在hibernate.cfg.xml中添加自己的类地址

<property name="hibernate.dialect">com.nhl.dao.SQlServerDBDialect</property>

然后创建新的类,如下所示

package com.nhl.dao;
import java.sql.Types;
import org.hibernate.dialect.SQLServerDialect;
import org.hibernate.type.StandardBasicTypes;

public class SQlServerDBDialect extends SQLServerDialect {

    public SQlServerDBDialect() {
        super();
        registerHibernateType(Types.NCHAR, StandardBasicTypes.CHARACTER.getName()); 
        registerHibernateType(Types.NCHAR, 1, StandardBasicTypes.CHARACTER.getName());
        registerHibernateType(Types.NCHAR, 255, StandardBasicTypes.STRING.getName());
        registerHibernateType(Types.NVARCHAR, StandardBasicTypes.STRING.getName());
        registerHibernateType(Types.LONGNVARCHAR, StandardBasicTypes.TEXT.getName());
        registerHibernateType(Types.NCLOB, StandardBasicTypes.CLOB.getName());

    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

JPA SQL Server 没有 JDBC 类型的方言映射:-9 的相关文章

随机推荐

  • 如何在 WildFly 20 上设置 Samesite cookie?

    我需要在 WildFly20 服务器响应上将相同的站点 cookie 属性设置为 严格 我需要通过服务器配置来完成此操作 有什么帮助吗 JMart 的答案是正确的 但需要将文件添加到您的网络应用程序 undertow handlers co
  • 使用 SwiftUI 使自定义 UIView 方面比例适合/填充时出现问题

    SwiftUI 中没有公共 API 来响应 View 协议的可调整大小修饰符 只有 SwiftUI 中的 Image 可以与 ressized 一起使用 自定义 UIView 如 GIF 的 UIView 现在无法调整大小 我使用 SDWe
  • 用于哈希更改的 Chrome 扩展程序 WebNavigation 侦听器

    我一直在使用chrome webNavigation onCommitted and onCompleted侦听器成功地检测到页面更改 但现在有一些网站完全加载新页面 仅更改了 URL 哈希部分 这些改变并不会激发这两位听众的兴趣 有什么方
  • 如何比较datetimepicker中的两个日期

    我正在做 Windows 项目 其中有两个 DateTimePicker 控件 一个用于 StartDate 另一个用于 EndDate 在运行时 当用户从该控件中选择 StartDate 和 EndDate 时 它 应该读取文本文件 即
  • 复制/重现 Django 开发环境

    我正在和我的朋友一起开发 Django 项目 该项目依赖于一些 python 模块 我在 virtualenv 中安装了 django 和其他依赖项 django 项目的代码位于一个存储库中 所有朋友都可以访问该存储库 他们可以签出 克隆
  • 当 css 中提供 height 属性时,scrollHeight 给出错误的值

    我尝试获取 div 的滚动高度 并且得到了正确的结果 但是当我在 css 中为该特定 div 添加 height 属性时 我得到了不同的值 只需运行fiddle您将在控制台中看到scrollheight属性的值等于268 等于所有子项的高度
  • 如何将 ViewPager 的高度包裹到其当前 Fragment 的高度?

    我制作了一个包含 ViewPager 的 ScrollView 但 ViewPager 的高度没有增长 当ViewPager里面的内容太大的时候 里面会出现 pucht 表格就是缩小的空间 我已经寻找解决方案 发现问题在于wrap cont
  • 如何将自定义枚举描述绑定到 DataGrid

    问题 我有一个枚举类型 其描述标签采用以下样式 URL http xml indelv com data binding enum html description tagtutorial URL 我有一个 Windows SQL Serv
  • 如何从Python列表中删除重复的元组?

    我有一个包含元组列表的列表 如下所示 mylist xxx 879 yyy 315 xxx 879 zzz 171 yyy 315 我想从中删除重复的元组mylist并得到如下输出 mylist xxx 879 yyy 315 zzz 17
  • 解决 SQL Server 中的“无法绑定多部分标识符”错误

    select distinct l username p payid p paymentdate sum p paymentamount as payment b balance as balance from tblUserLoginDe
  • 如何创建年度时间驱动触发器?

    我正在尝试创建一个基于时间的触发器来执行我的incrementCell每年在指定日期的凌晨 1 点永远运行一次 当尝试在下面运行时 ScriptApp newTrigger incrementCell timeBased atDate 20
  • 如何在 Eclipse 中添加 hibernate javadoc?

    过去两个月我一直在使用 Eclipse 我之前没有在其中使用javadocs 今天我搜索了 hibernate javadocs 并得到了 hibernate 3 2 2 ga javadoc jar 但我不知道如何在 eclipse 中添
  • Oracle PL/SQL:动态循环触发器列

    在触发器内部 我尝试循环表上的所有列并将新值与旧值进行比较 这是我到目前为止所拥有的 CREATE OR REPLACE TRIGGER JOSH TEST UPD BEFORE UPDATE ON JOSH TEST TRIGGER TA
  • Eclipse可以自动刷新资源吗?

    Eclipse 带有 PyDev 的 3 4 2 处理不同步资源 在 IDE 外部编辑的文件 的方式与我使用过的其他 IDE 不同 在其他 IDE 中 只有编辑器打开的资源才被视为不同步 在 Eclipse 中 任何资源都可能不同步 这意味
  • 将当前日期作为 Y-m-d 与不具有零填充天数的 Y-m-d 字符串进行比较

    如何在 PHP 中比较两个日期 日期以以下格式存储在数据库中 2011 10 2 如果我想将今天的日期与数据库中的日期进行比较 看看哪一个更大 我该怎么做 我试过这个 today date Y m d expire row gt expir
  • 根据购物车商品数量和产品类别进行折扣

    我正在尝试根据最小购物车商品数量和类别添加自定义购物车折扣 我从这个答案中获取了代码 购物车折扣基于购物车商品数量 并且仅适用于未促销的商品 我对其进行了一些更改 这是我的代码 add action woocommerce cart cal
  • 在单个结构中处理不同的数据类型

    我需要发送一些有关 VxWorks 消息队列的信息 要发送的信息是在运行时决定的 并且可以是不同的数据类型 我正在为此使用一个结构 struct structData char m chType variable to indicate t
  • 使用 DI->Get Phalcon PHP 时出现“无效服务定义”

    这个问题与在 PhalconPHP 中附加多个配置数组 我正在尝试使用 get 方法从 DI 检索对象 对象是这样设置的 new array the array with the merged data Load it in a Phalc
  • VBA - 未定义子或函数

    我的代码不断出现 Sub 或 Function not Defined 编译错误 我想要完成的是通过单元格中的输入获取两个项目描述符 然后为该项目生成一个唯一的字母数字序列号 然后将其输出到屏幕上并将其保存在另一张纸上 诚然 这甚至没有开始
  • JPA SQL Server 没有 JDBC 类型的方言映射:-9

    我正在编写一个本机查询 例如 Query query entityManagerUtil getEntityManager createNativeQuery SELECT c NodeID c Code c Name FROM COM L