首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >更改后保存hibernate.cfg.xml

更改后保存hibernate.cfg.xml
EN

Stack Overflow用户
提问于 2020-04-16 18:18:06
回答 1查看 79关注 0票数 1

我想在一些属性更改后保存我的hibernate.cfg.xml。我可以在运行时更改属性,但我需要保存更改,这样我就可以在下次执行时访问新属性。

在hibernate.cfg.xml中,我有如下属性:

代码语言:javascript
复制
<hibernate-configuration>
   <session-factory>
      //...
      <property name="hibernate.connection.username">berkan</property>
      <property name="hibernate.connection.password">123456</property>
      //...
   </session-factory>
</hibernate-configuration>

我可以在运行时使用setProperty()更改属性,如下所示:

代码语言:javascript
复制
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文件中。

EN

回答 1

Stack Overflow用户

发布于 2020-04-16 18:25:50

你思考的方向是非常错误的。通常是放在hibernate配置文件中的系统用户(组件或子系统的专用用户)。如果您打算为每个用户创建一个专用连接,这意味着您的数据库服务器已经以某种方式创建了所有这些用户和密码。我建议根本不保存用户,或者如果您想保存用户,则将其保存在hibernate配置文件之外的某个表或名为- LastLoggedUser的文件下。

通常,多用户场景的编码方式如下。您有一个或多个数据库用户可能具有不同的权限f.ex。- read only user用于报告,read write user用于常规使用。然后,在顶部对逻辑用户进行建模。你可以有f.ex。数据库中名为user的表,其中常规用户将使用该数据库用户进行读、写操作,执行分析的用户将有权访问报告用户。现在这只是一个例子。

只是不要试图在运行时修改hibernate配置文件。9/10的情况下这是错误的。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61247828

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档