Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/384.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java org.hibernate.MappingException:没有JDBC类型的方言映射:1111_Java_Hibernate_Postgresql - Fatal编程技术网

Java org.hibernate.MappingException:没有JDBC类型的方言映射:1111

Java org.hibernate.MappingException:没有JDBC类型的方言映射:1111,java,hibernate,postgresql,Java,Hibernate,Postgresql,问题是什么,配置中是否遗漏了任何内容?谢谢 尝试在数据库端进行跟踪,在应用程序的代码中放置一些断点或添加一些日志项,以确定生成此错误的查询是什么,即在错误发生之前执行的查询 一旦得到查询,请尝试通过将语句分解为小块来缩小根本原因,并查看方言不支持哪种列/变量。堆栈跟踪告诉您的是Hibernate正在初始化自身,特别是,正在执行配置。generateSchemaCreationScript,它将遍历所有映射表并为它们生成DDL。作为其中的一部分,它查询现有列并将它们转换为内部Hibernate表示

问题是什么,配置中是否遗漏了任何内容?谢谢

尝试在数据库端进行跟踪,在应用程序的代码中放置一些断点或添加一些日志项,以确定生成此错误的查询是什么,即在错误发生之前执行的查询


一旦得到查询,请尝试通过将语句分解为小块来缩小根本原因,并查看方言不支持哪种列/变量。

堆栈跟踪告诉您的是Hibernate正在初始化自身,特别是,正在执行
配置。generateSchemaCreationScript
,它将遍历所有映射表并为它们生成DDL。作为其中的一部分,它查询现有列并将它们转换为内部Hibernate表示。它通过调用然后使用生成的类型代码调用来实现这一点。问题是
getColumnType
返回的类型代码是1111,意思是“”),Hibernate不知道该怎么办


基本上,在您的一个表中的某个地方有一个Hibernate无法处理的列。如果你能确定那是哪一列,你就可以开始考虑该怎么做。

我设法解决了这个错误

1111表示
Null
值,在我的情况下,该列是必需的,并且在任何时候都会有一个枚举类型的值。因此无需设置
1111
,我将其更改为
ARCHAR
sql类型


终于成功了。

在您的查询中,我认为一些数据类型正在作为未知类型进行检索。请输入您在JavaBean中使用的适当数据类型。 如果您使用Postgres作为数据库。在java代码中,您可以键入cast,例如:
selectcolumn\u name::required type为\“required\u name\”
例如:
选择type\u name::text作为\“typeName\”


如果“::”这会产生任何问题,请使用\\:\\:,即您包含转义字符

您是否有可能使用PostgreSQL,并且您的模式是否有可能包含某个XML列?仅使用PostgreSQL,但没有任何XML列。好吧,那不是这样的!嗯,看起来它与方言无关,但与你的查询有关。检查另一个问题,看看它是否有帮助:我在运行如下查询时遇到了这个问题:选择“”作为col1,从t1中选择col2它不仅是空值,它只是表示“其他”
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.<init>(SchemaExport.java:105)
        at org.hibernate.impl.SessionFactoryImpl.<init>(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.<clinit>(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)
@Column(name = "commission_type")
        @Type(type = "com.core.commission.model.FNEnumUserType", parameters = @Parameter(name = "type", value = "com.core.commission.dto.CommissionType"))
        private CommissionType commissionType;