org.hibernate.MappingException:没有JDBC类型的Dialect映射:1111
Initial SessionFactory creation failed.org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111 27 Dec, 2012 6:38:34 PM org.apache.catalina.core.StandardWrapperValve invoke SEVERE: Servlet.service() for servlet commission threw exception org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111 at org.hibernate.dialect.TypeNames.get(TypeNames.java:79) at org.hibernate.dialect.TypeNames.get(TypeNames.java:104) at org.hibernate.dialect.Dialect.getTypeName(Dialect.java:347) at org.hibernate.mapping.Column.getSqlType(Column.java:208) at org.hibernate.mapping.Table.sqlCreateString(Table.java:419) at org.hibernate.cfg.Configuration.generateSchemaCreationScript(Configuration.java:930) at org.hibernate.tool.hbm2ddl.SchemaExport.(SchemaExport.java:105) at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:383) at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1385) at org.hibernate.cfg.AnnotationConfiguration.buildSessionFactory(AnnotationConfiguration.java:954) at com.core.commission.HibernateUtil.(HibernateUtil.java:15) at com.core.commission.service.BaseCommissionService.saveRules(BaseCommissionService.java:48) at com.core.commission.service.BaseCommissionService.processSave(BaseCommissionService.java:22) at com.core.web.CommissionServlet.processRequest(CommissionServlet.java:51) at com.core.web.CommissionServlet.doPost(CommissionServlet.java:34) at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
我在启动Web服务器时遇到上述错误。 我使用枚举映射与enity类。 就像是…
@Column(name = "commission_type") @Type(type = "com.core.commission.model.FNEnumUserType", parameters = @Parameter(name = "type", value = "com.core.commission.dto.CommissionType")) private CommissionType commissionType;
问题是什么,我错过了配置中的任何内容吗? 谢谢 !!
堆栈跟踪告诉你的是Hibernate正处于初始化过程中,特别是执行Configuration.generateSchemaCreationScript
,它遍历所有映射表并为它们生成DDL。 作为其中的一部分,它查询现有列并将它们转换为内部Hibernate表示。 它通过调用ResultSetMetaData::getColumnType
,然后使用生成的类型代码调用TypeNames::get
来完成此操作。 问题是getColumnType
返回的类型代码为1111,这意味着“ 其他 ”,而Hibernate不知道如何处理它。
基本上,你的一个表中的某个地方是Hibernate无法处理的类型的列。 如果您可以确定哪个列,您可以开始考虑如何处理它。
尝试在数据库端进行跟踪,放置一些断点或在应用程序代码中添加一些日志条目,以确定生成此错误的查询是什么,即在错误发生之前正在执行的查询。
获得查询后,尝试通过将语句拆分为较小的块来缩小根本原因,并查看方言不支持哪种列/变量。
在您的查询中,我认为某些数据类型正在检索为未知类型。 请将类型转换为您在java bean中使用的相应数据类型。 如果你使用Postgres作为你的数据库。 在您的java代码中,您可以键入如下: select column_name :: desired type as \"desired_name\"
例如: select type_name :: text as \"typeName\"
如果“ :: ”这会产生任何问题请使用\ \:\ \:那就是你要包含转义字符
我设法解决了这个错误。
1111用于Null
值,在我的情况下,该列是强制性的,并且在任何时候都会有枚举类型中的一个值。 因此无需设置1111
,我将其更改为ARCHAR
sql类型。
最后它有效。
- 集成了spring 3,hibernate 3,maven和mysql
- 如何正确地将特定对象的列表转换为Gson?
- java.lang.NoClassDefFoundError:org / hibernate / cache / EntityRegion配置EHCache
- hibernate referencedColumnNames未映射到单个属性
- Tomcat-Spring-Hibernate Web应用程序中的“PermGen out of space”exception可以做些什么?
- 从POJO获取带注释的hibernate tablename
- 将Excel数据转换为MySql表
- StAX – 从xml读取base64字符串到db
- 通过在某个包中添加所有类,在Hibernate中添加带注释的类。 JAVA