如果我没有以编程方式设置任何东西,只是调用Configuration配置=new Configuration(). confifigure();
并使用hibernate.properties(如下所示),一切都很好。一旦我尝试以编程方式提供用户名、密码和连接url,我就会得到一个奇怪的异常,提示hbm文件。我错过了什么?
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hibernate.connection.url=jdbc:mysql://myEC2/mCruiseOnServerDB?autoReconnect=true&failOverReadOnly=false&maxReconnects=10
hsqldb.write_delay_millis=0
shutdown=true
hibernate.connection.username=root
hibernate.connection.password=mypwd
hibernate.connection.pool_size=2
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
hibernate.c3p0.idle_test_period=300
hibernate.c3p0.timeout=120
现在hibernate.properties是
hibernate.connection.driver_class=com.mysql.jdbc.Driver
hsqldb.write_delay_millis=0
shutdown=true
hibernate.connection.pool_size=2
hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect
代码
String connection = "jdbc:mysql://"
+ Globals.DBSERVER
+ "/mCruiseOnServerDB?autoReconnect=true&failOverReadOnly=false&maxReconnects=10";
Configuration configuration = new Configuration()
.setProperty("hibernate.connection.url", connection)
.setProperty("hibernate.connection.username", Globals.DB_USER_NAME)
.setProperty("hibernate.connection.password", Globals.DB_PASSWORD);
configuration.configure();
sessionFactory = configuration
.buildSessionFactory(new ServiceRegistryBuilder()
.buildServiceRegistry());
例外情况
我现在得到了这个异常,一个用于我的hbm文件中的每个映射资源
条目。
11 May 2013 08:46:31,969 1300 [main] FATAL ReadOnlyOperations - Have chosen to ignore this runtime exception java.lang.UnsupportedOperationException: The application must supply JDBC connections, may be fatal, examine this carefully
11 May 2013 08:46:31,969 1300 [main] FATAL ReadOnlyOperations - java.lang.UnsupportedOperationException: The application must supply JDBC connections
如果我使用所有hibernate.properties
而没有代码(代码中没有. setProperty),一切都很好。如果我使用parthibernate.properties
和part code(服务器、用户名、密码),我会在hbm中为每个映射属性获取错误。
我需要有人帮我弄清楚我错过了什么。它应该是真正基本的东西。
即使您以编程方式设置连接参数(URL、用户名、密码),您也应该确保不存在会在应用程序启动时强制使用JDBC连接的其他条件。我确定了至少两个:
>
如果您在hibernate.cfg.xml或persistence.xml中使用C3P0属性,这也会迫使池管理器在启动时尝试从数据库获取连接
在所有这些情况下,由于您在不配置连接参数的情况下强制连接到DB,因此您将收到各种错误(例如您面临的错误)...
为了修复这些错误,请禁用属性(hibernate.hbm2ddl)或以编程方式设置其他属性(hibernate.c3p0.*)
另一种方法是从Hibernate加载所有属性。cfg公司。xml或Hibernate。属性,并仅以编程方式覆盖所需的属性。
Configuration config = new Configuration().configure();
config.setProperty("hibernate.connection.username", "xyz" );
config.setProperty("hibernate.connection.password", "password" );
哇,刚刚解决了问题。
sessionFactory = configuration.buildSessionFactory(new ServiceRegistryBuilder().applySettings(configuration.getProperties()).buildServiceRegistry());
我错过了
configuration.get属性
学习
http://www.hibernate.org/dtd/
。xml和所有hbm文件。不要忘记hbm文件,它们也使用相同的DTD
最后,提到这个,来解决这个问题。
Bill Gorder
的最后一个建议非常棒。
private static SessionFactory configureSessionFactory()
throws HibernateException {
Configuration configuration = new Configuration();
configuration.configure();
ServiceRegistry serviceRegistry = new ServiceRegistryBuilder()
.applySettings(configuration.getProperties())
.buildServiceRegistry();
return configuration.buildSessionFactory(serviceRegistry);
}
我正在尝试为带有嵌入式postgressql后端(基于磁盘)的Spring启动微服务生成liquibase更改日志 总是犯错误 java.lang.不支持的操作异常:应用程序必须在org.hibernate.engine.jdbc.connections.internal.提供JDBC连接UserSuppliedConnectionProviderImpl.getConnection(UserSu
问题内容: 如果我没有以编程方式设置任何内容,而只是调用并使用hibernate.properties(如下所示),那么一切都将很好。尝试以编程方式提供用户名,密码和连接URL时,我会收到奇怪的异常提示,提示是hbm文件。我想念什么? 按照@Kshitij的建议。进行混合模式。 *现在 *的hibernate.properties 是 编码 例外 我现在得到这个异常,我的hbm文件中的每个条目都有
问题内容: 我写了一些代码来测试我的Hibernate配置,但是遇到了这样的错误消息: 我的文件结构如下: 这不是一个Web应用程序,它只是一个普通的Java项目。hibernate.cfg.xml如下所示: 主要功能中的代码如下: 根据错误消息,错误发生在 我是Hibernate的新用户,并且已经多次检查了我的配置文件。有谁可以帮助您找出问题所在?谢谢! 编辑:Hibernate版本是4.3.5
我编写了一些代码来测试Hibernate的配置,但是我遇到了这样的错误消息: main函数中的代码如下所示: 根据错误消息,错误发生在 我是Hibernate的一个新用户,我已经检查了我的配置文件很多次了。有人能帮我找出问题所在吗?谢了!
我不知道;我不太明白在哪里可以抛出这个异常。 例如,我正在实现
相反,将引发“UnsupportedOperationException”。看起来ContainerRequest没有从修改的请求中提取UserPrincipal。 修改是通过 问题是如何将主体信息从HttpServerProbe传输到ContainerRequestFilter。request具有安全信息(在本例中是SSL客户机证书信息),而com.sun.jersey.spi.containe