我想在一些属性更改后保存我的hibernate.cfg.xml。我可以在运行时更改属性,但我需要保存更改,这样我就可以在下次执行时访问新属性。
在hibernate.cfg.xml中,我有如下属性:
<hibernate-configuration>
<session-factory>
//...
<property name="hibernate.connection.username">berkan</property>
<property name="hibernate.connection.password">123456</property>
//...
</session-factory>
</hibernate-configuration>我可以在运行时使用setProperty()更改属性,如下所示:
configuration = new Configuration().configure();
configuration.setProperty("hibernate.connection.username", "berkantest");
configuration.setProperty("hibernate.connection.password", "098765");
sessionFactory = configuration.buildSessionFactory(new StandardServiceRegistryBuilder().applySettings(configuration.getProperties()).build());但在停止当前执行的构建后,我无法在下一次执行时访问新的用户名和密码。我想将它们保存在hibernate.cfg.xml文件中。
发布于 2020-04-16 18:25:50
你思考的方向是非常错误的。通常是放在hibernate配置文件中的系统用户(组件或子系统的专用用户)。如果您打算为每个用户创建一个专用连接,这意味着您的数据库服务器已经以某种方式创建了所有这些用户和密码。我建议根本不保存用户,或者如果您想保存用户,则将其保存在hibernate配置文件之外的某个表或名为- LastLoggedUser的文件下。
通常,多用户场景的编码方式如下。您有一个或多个数据库用户可能具有不同的权限f.ex。- read only user用于报告,read write user用于常规使用。然后,在顶部对逻辑用户进行建模。你可以有f.ex。数据库中名为user的表,其中常规用户将使用该数据库用户进行读、写操作,执行分析的用户将有权访问报告用户。现在这只是一个例子。
只是不要试图在运行时修改hibernate配置文件。9/10的情况下这是错误的。
https://stackoverflow.com/questions/61247828
复制相似问题