我正在尝试在运行时更改cfg属性。 例如:
cfg.setProperty("hibernate.connection.url")
问题是只有在cfg文件本身没有定义此属性时它才有效, 意思是,它不会覆盖。
能以某种方式完成吗?
答案 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 )
[...] ;
将在运行时设置所有属性。