Hibernate将自定义前缀添加到目录

哔叽

我正在使用Hibernate 4.3.6,并且需要根据环境将自定义前缀添加到目录中。我曾经在4.2.3版本中执行此代码

private static SessionFactory buildSessionFactory() {
    try {
        Configuration config = new Configuration();
        config.configure("db.cfg.xml");
        config.buildMappings();

        ServiceRegistry registry = new StandardServiceRegistryBuilder()
                .applySettings(config.getProperties())
                .build();

        if (prefix != null && !prefix.isEmpty()) {
            Iterator<Table> iterator = config.getTableMappings();
            while (iterator.hasNext()) {
                Table table = (Table) iterator.next();
                table.setCatalog(prefix + table.getCatalog());
            }
        }
        //return new AnnotationConfiguration().buildSessionFactory(registry);
        SessionFactory factory = config.buildSessionFactory(registry);
        return factory;
    }
    catch (Throwable ex) {
        // Make sure you log the exception, as it might be swallowed
        System.err.println(ex);
        throw new ExceptionInInitializerError(ex);
    }
}

但是现在它出错了

config.buildSessionFactory(registry);

java.lang.ExceptionInInitializerError
at db.DatabaseEngine.buildSessionFactory(DatabaseEngine.java:110)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:192)
Caused by: java.lang.NullPointerException
at org.hibernate.cfg.Configuration.secondPassCompile(Configuration.java:1456)
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1844)
at db.DatabaseEngine.buildSessionFactory(DatabaseEngine.java:104)
... 26 more

除目录外,是否存在诸如EnhancedNamingStrategy之类的东西?

斯蒂芬·韦伯

创建orm.xml之后,可以使用以下代码加载它:

Configuration config = new Configuration();
config.configure("db.cfg.xml");
config.addResource("orm.xml"); // Load these files in any order
config.buildMappings();

有关如何创建orm.xml文件的信息,请参见Vlad的答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

将自定义视图添加到警报视图

来自分类Dev

将自定义别名添加到.zshrc

来自分类Dev

pyqt:将自定义列添加到QFileSystemModel

来自分类Dev

将自定义Gradle插件添加到项目

来自分类Dev

将自定义数字添加到ggplot图例

来自分类Dev

将自定义属性添加到SimpleSAMLPhp

来自分类Dev

将自定义代码段添加到emmet

来自分类Dev

将自定义标签添加到TIFF文件

来自分类Dev

将自定义消息添加到TestNG失败

来自分类Dev

将自定义键绑定添加到XCode

来自分类Dev

将自定义属性添加到Serilog

来自分类Dev

将自定义字体添加到GUI SWT

来自分类Dev

将自定义字段添加到Django admin

来自分类Dev

将自定义路线添加到Apigility

来自分类Dev

将自定义函数添加到类

来自分类Dev

将自定义MKAnnotationView添加到MKPointAnnotation

来自分类Dev

将自定义类添加到引导按钮

来自分类Dev

无法将自定义字体添加到Xcode

来自分类Dev

将自定义月份按钮添加到FullCalendar

来自分类Dev

将自定义Js添加到Wordpress主题

来自分类Dev

如何将自定义目录添加到Scala SBT项目?

来自分类Dev

将自定义按钮操作添加到笔管

来自分类Dev

将自定义视图(tileview)添加到布局?

来自分类Dev

将自定义属性添加到Trello卡

来自分类Dev

将自定义字体添加到GitHub页面

来自分类Dev

将自定义标头添加到目录中的特定文件

来自分类Dev

Notepad ++将自定义标签添加到行

来自分类Dev

将自定义标头添加到“请求”

来自分类Dev

将自定义图例添加到bokeh Bar