hibernate在运行时更改cfg属性

时间:2011-06-22 08:42:53

标签: java hibernate

我正在尝试在运行时更改cfg属性。 例如:

cfg.setProperty("hibernate.connection.url")

问题是只有在cfg文件本身没有定义此属性时它才有效, 意思是,它不会覆盖。

能以某种方式完成吗?

1 个答案:

答案 0 :(得分:3)

当你跑

Configuration cfg = new Configuration().configure();

.configure()从XML读取数据,并且它比程序化配置具有更高的优先级。

但是,如果您删除.configure,则所有配置都将从您将传递的设置中“读取”。例如:

       Configuration configuration = new Configuration()
       .setProperty( "hibernate.connection.driver_class", "org.postgresql.Driver" )
       .setProperty( "hibernate.dialect","org.hibernate.dialect.PostgreSQLDialect")
       [...snip...]
       .addAnnotatedClass( com.myPackage.MyClass.class )
       [...] ;

将在运行时设置所有属性。