我使用 Hibernate 和 Derby。
我有一个 hibernate.cfg.xml 和我为使用 db waas 所做的一切来获得一个 Session :
return new AnnotationConfiguration().configure( "files/hibernate.cfg.xml" ).buildSessionFactory().getCurrentSession();
我的 hibernate.cfg.xml 包含
<property name="connection.driver_class">org.apache.derby.jdbc.EmbeddedDriver</property>
<property name="connection.url">jdbc:derby:crmdb;create=true</property>
以及实体类的一些其他属性和映射。
现在我想在运行时为 derby db 和 bootPassword 设置 dataEncryption。
我改变了 hibernate.cfg.xml :
<property name="connection.url">jdbc:derby:crmdb;create=true;dataEncryption=true;bootPassword=myPass</property>
一切都很好。
现在我想在运行时设置 bootPassword,例如从环境变量中读取。那就是问题所在!当我从 hibernate.cfg.xml 中删除“connection.url”并尝试在我的代码中设置它时,会出现此错误:
java.lang.UnsupportedOperationException: The application must supply JDBC connections
如果我只删除 bootPassword,它就无法连接到数据库。
任何的想法 ?