- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 hibernate.xml 中,我有:
<property name="hibernate.dialect">org.hibernate.dialect.PostgreSQLDialect</property>
这就是我正在尝试做的事情:
final Session sess = sessionFactory.openSession();
Transaction tx = null;
try {
tx = sess.beginTransaction();
Collection<Rfc> rfcs;
Criteria criteria = sessionFactory.getCurrentSession().createCriteria(Rfc.class);
criteria = criteria.add(Restrictions.like(Rfc.RFC_IDENTIFIER, input.replace('*', '%')));
rfcs = criteria.list();
// ...
tx.commit();
} catch (final Exception e) {
if (tx != null) {
tx.rollback();
}
throw new IllegalArgumentException(e);
} finally {
sess.close();
}
这一切看起来非常简单,但我得到:
Caused by: java.lang.ClassCastException: org.hibernate.dialect.PostgreSQLDialect cannot be cast to org.hibernate.dialect.Dialect at org.hibernate.service.jdbc.dialect.internal.
这是我的 pom.xml 的相关部分:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<!-- <version>4.1.9.Final</version>-->
<version>4.1.0.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-entitymanager</artifactId>
<version>3.6.3.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-annotations</artifactId>
<version>3.5.6-Final</version>
</dependency>
我已将问题追溯到 org.hibernate.service.jdbc.dialect.internal.DialectFactoryImpl.constructDialect() 的方法,我们在其中找到:
private Dialect constructDialect(String dialectName) {
try {
return ( Dialect ) classLoaderService.classForName( dialectName ).newInstance();
}
catch ( ClassLoadingException e ) {
throw new HibernateException( "Dialect class not found: " + dialectName, e );
}
catch ( HibernateException e ) {
throw e;
}
catch ( Exception e ) {
throw new HibernateException( "Could not instantiate dialect class", e );
}
}
尝试在此处实例化 Dialog 会导致上述 ClassCastException。
为了额外确保我拥有正确的类,我在其层次结构中显示了所有父类(super class)...这正是我在控制台中看到的内容:
org.hibernate.dialect.PostgreSQLDialect 类
类 org.hibernate.dialect.PostgreSQL82Dialect
类 org.hibernate.dialect.PostgreSQL81Dialect
org.hibernate.dialect.Dialect 类
然而...果然, org.hibernate.dialect.Dialect.class.isAssignableFrom(classLoaderService.classForName( dialectName ) )返回 false。
这可能是 hibernate 版本与 Postgresql 提供的驱动程序之间存在某种不兼容吗?
一直在撕扯我的头发。非常感谢任何帮助!
最佳答案
是的。问题似乎是我试图混合各种 hibernate 依赖项的不兼容版本。我刚刚将上面引用的 pom.xml 部分替换为:
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-search</artifactId>
<version>4.3.0.Final</version>
</dependency>
我要开始下一期了!
关于hibernate - 为什么 org.hibernate.dialect.PostgreSQLDialect 不能转换为 org.hibernate.dialect.Dialect?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19601089/
我是Gradle的Spring Application的新手。 运行我的项目以基于创建的类创建数据库对象,出现以下错误: Exception in thread "main" org.springfr
在 hibernate.xml 中,我有: org.hibernate.dialect.PostgreSQLDialect 这就是我正在尝试做的事情: final Session sess = ses
运行应用程序时出现以下错误。 我的数据配置文件 package com.book.data; import java.util.Properties; import javax.persistence
我是这样配置的,为什么会报上面的错误? spring.jpa.show-sql = true logging.level.org.springframework.data=DEBUG spring.j
spring.jpa.properties.hibernate.dialect=org.hibernate.spatial.dialect.postgis.PostgisDialect 我有一个带有
使用hibernate-entitymanager 4.2.8.Final hibernate 空间 4.0 Session session = sessionProvider.get(); Crit
我是 hibernate 的新手,所以我通过观看视频教程进行练习。我关注的链接是, https://www.youtube.com/watch?v=FFMOZY4z6bE&list=PL4AFF701
我使用 Spring Boot 1.4.1.RELEASE、Hibernate、PostgreSQL 9.6.0.x。我看到 IntelliJ IDEA 建议使用 2 种方言: # Hibernate
我有 Eclipse RCP 应用程序。具有 hibernate 功能的 JAR 位于另一个插件中,该插件包含在 MANIFEST.MF 的主项目中。 我尝试建立简单的连接 Hibernate ->
com.org.springsApps.Student org.hibernate.dialect.orac
Dialect 是一个简单明了的应用,可以让你使用 Web 服务进行语言间的翻译。想要了解更多的话,让我们来一窥究竟。 虽然你可以启动 Web 浏览器并直接使用任何翻译服务来完成工作,但桌面应
我正在尝试为以下内容运行 hello world:带有 HSQLDB 和 C3PO 连接池的 Spring/Hibernate。 相同的代码适用于 mySQL(仅适用于不同的方言和驱动程序) 我已经运
这是我的 Person.java 类 package com.hibernate.project.pos.model; import javax.persistence.*; @Entity @T
我正在尝试使用 MySQL 5.7 数据库中的 REGEXP 函数在 H2 内存数据库上运行 JPQL。我想使用相同的查询进行集成测试。 由于 H2 上不存在 REGEXP 函数,我正在尝试注册一个新
我的项目中有 persistence.xml 文件,在这个文件中设置了一个属性,所以我很好奇,为什么要设置它?它有什么作用? 最佳答案 虽然基本 SQL 是一个标准,但不同的数据库对标准之外的某些事
我在使用 Hibernate 时遇到以下错误: 'hibernate.dialect' 必须在没有可用连接时设置 我正在使用数据源进行数据库连接。 最佳答案 问题可能是您没有为您尝试连接的数据库安装客
我尝试在 hibernate 中执行简单的 sql 事务时遇到错误。我正在使用 hibernate 4.3,它说 derby dialect has been deprecated 我试着用谷歌搜索,
遇到的问题 在运行时,我总是得到以下 NHibernate.MappingException : "Could not compile the mapping document: GI.Invento
我的 YML 中有此 JPA 配置。 jpa: database-platform: DB2Platform ddl-auto: create-drop hi
在使用 spring3 设置 hibernate 时遇到更多问题。这次是说连接是空的,因为我的 hibernate.cfg.xml 文件中没有设置方言。 这里是完整的异常(exception):
我是一名优秀的程序员,十分优秀!