java - 运行时的 Hibernate 配置

标签 java hibernate

我有 hibernate.cfg.xml 文件。

<session-factory>

    <!-- Database connection settings -->
    <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="connection.url"></property>
    <property name="connection.username"></property>
    <property name="connection.password"></property> 

    <!-- JDBC connection pool (use the built-in) -->
    <property name="connection.pool_size">1</property>

......................

这是文件中最有趣的部分。 现在我必须设置缺失值:url、用户名、密码。 我正在尝试这样做:

public static void SetSessionFactory() {
    try {

      AnnotationConfiguration conf = new AnnotationConfiguration().configure();
      // <!-- Database connection settings -->
      conf.setProperty("connection.url", URL);
      conf.setProperty("connection.username", USERNAME);
      conf.setProperty("connection.password", PASSWORD);
      SESSION_FACTORY = conf.buildSessionFactory();

    } catch (Throwable ex) {
      // Log exception!
      throw new ExceptionInInitializerError(ex);
    }
  }

但它只是从 hibernate.cfg.xm 加载我的配置并且不更改任何属性...

url、username、passoword - 是命令行参数,所以我必须在运行时设置它们。

最佳答案

尝试在此处调用 conf.configure();
并且属性可能需要有像“hibernate.connection.username”这样的 hibernate 前缀
希望对您有所帮助。

关于java - 运行时的 Hibernate 配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1341871/

相关文章:

java - 助手 : marven libraries can't be downloaded

java - 将 Websocket 与 Spring Boot 和 Vuejs 结合使用的最佳方式

java - 为什么带有前导零的整数文字会被奇怪地解释?

java - IBM Watson NLC - 如何在 Java SDK 中重新训练现有分类器

java - 圆形和矩形之间的碰撞在角落不起作用(javafx)

hibernate - 严重:org.hibernate.exception.GenericJDBCException:索引处缺少 IN 或 OUT 参数::1

java - Hibernate:在另一个实体PK中使用复合FK的一部分

Axis2 找不到 Hibernate 配置文件

java - 如何阻止 hibernate 在 ManyToMany 映射中插入表?

java - JPA 单向一对多连接表 - 实体映射不起作用