我在 query.list() 行中收到以下异常:
org.hibernate.MappingException: No Dialect mapping for JDBC type: -4 at org.hibernate.dialect.TypeNames.get(TypeNames.java:56) at org.hibernate.dialect.TypeNames.get(TypeNames.java:81) at org.hibernate.dialect.Dialect.getHibernateTypeName(Dialect.java:369) at org.hibernate.loader.custom.CustomLoader$Metadata.getHibernateType(CustomLoader.java:559) at org.hibernate.loader.custom.CustomLoader$ScalarResultColumnProcessor.performDiscovery(CustomLoader.java:485) at org.hibernate.loader.custom.CustomLoader.autoDiscoverTypes(CustomLoader.java:501) at org.hibernate.loader.Loader.getResultSet(Loader.java:1787) at org.hibernate.loader.Loader.doQuery(Loader.java:662) at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:224) at org.hibernate.loader.Loader.doList(Loader.java:2211) at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2095) at org.hibernate.loader.Loader.list(Loader.java:2090) at org.hibernate.loader.custom.CustomLoader.list(CustomLoader.java:289) at org.hibernate.impl.SessionImpl.listCustomQuery(SessionImpl.java:1695) at org.hibernate.impl.AbstractSessionImpl.list(AbstractSessionImpl.java:142) at org.hibernate.impl.SQLQueryImpl.list(SQLQueryImpl.java:152)
以下是我的配置文件:
<property name="hibernate.connection.driver_resource">com.mysql.jdbc.Driver</property> <property name="hibernate.connection.password">mysql</property> <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/mydatabase</property> <property name="hibernate.connection.username">root</property> <property name="hibernate.default_schema">mydatabase</property> <property name="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
当我尝试在Eclipse IDE中运行应用程序时,不会出现此异常,但是当我创建应用程序jar并运行时,只有我得到了它。提前致谢…
得到了解决方案:
只需更改查询,我将获取整个记录,而不是选择特定的记录。例如 从表 ,然后从表对象获取相应的字段(此处为脚本)值,而不是从表中使用 选择脚本 ,现在工作正常。