Hibernate加载配置文件的两种方法
2015-06-05 10:55
555 查看
Hibernate加载配置文件的两种方法:
(一):configuration.configure();(默认加载src下的hibernate.cfg.xml文件)
代码:
如果使用了这种加载方法那么在hibernate.cfg.xml文件中就需要mapping XX.hbm.xml文件了
代码:
第二种方法使用的是con.addClass(class);方法
在test类中代码:
如果使用了这种那么在hibernate.cfg.xml文件中就不需要mapping了。
如果既使用了addClass方法也在cfg.xml文件中添加了mapping就会如下错误
(一):configuration.configure();(默认加载src下的hibernate.cfg.xml文件)
代码:
private static SessionFactory sf = null; static{ Configuration configuration = new Configuration(); configuration.configure(); sf = configuration.buildSessionFactory(); }
如果使用了这种加载方法那么在hibernate.cfg.xml文件中就需要mapping XX.hbm.xml文件了
代码:
<session-factory> <mapping resource="domain/Students.hbm.xml"/> <mapping resource="domain/Techer.hbm.xml"/> </session-factory>
第二种方法使用的是con.addClass(class);方法
在test类中代码:
private static SessionFactory sf = null; static{ Configuration configuration = new Configuration(); configuration.configure(); configuration.addClass(Techer.class); configuration.addClass(Students.class); sf = configuration.buildSessionFactory(); }
如果使用了这种那么在hibernate.cfg.xml文件中就不需要mapping了。
如果既使用了addClass方法也在cfg.xml文件中添加了mapping就会如下错误
java.lang.ExceptionInInitializerError at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:525) at org.junit.runners.BlockJUnit4ClassRunner.createTest(BlockJUnit4ClassRunner.java:209) at org.junit.runners.BlockJUnit4ClassRunner$1.runReflectiveCall(BlockJUnit4ClassRunner.java:258) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.BlockJUnit4ClassRunner.methodBlock(BlockJUnit4ClassRunner.java:255) at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) 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:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) Caused by: org.hibernate.InvalidMappingException: Could not parse mapping document from resource domain/Techer.hbm.xml at org.hibernate.cfg.Configuration.addResource(Configuration.java:641) at org.hibernate.cfg.Configuration.addClass(Configuration.java:688) at dao.App.<clinit>(App.java:17) ... 23 more Caused by: org.hibernate.DuplicateMappingException: Duplicate class/entity mapping domain.Techer at org.hibernate.cfg.Configuration$MappingsImpl.addClass(Configuration.java:2407) at org.hibernate.cfg.HbmBinder.bindRoot(HbmBinder.java:173) at org.hibernate.cfg.Configuration.add(Configuration.java:771) at org.hibernate.cfg.Configuration.addInputStream(Configuration.java:606) at org.hibernate.cfg.Configuration.addResource(Configuration.java:638) ... 25 more
相关文章推荐
- Hibernate Oracle sequence的使用技巧
- jsp Hibernate批量更新和批量删除处理代码
- jsp hibernate的分页代码第1/3页
- JAVA+Hibernate 无限级分类
- SSH整合中 hibernate托管给Spring得到SessionFactory
- jsp hibernate 数据保存操作的原理
- hibernate中的增删改查实现代码
- 解决hibernate+mysql写入数据库乱码
- java优化hibernate性能的几点建议
- java Hibernate延迟加载
- hibernate 常用方法介绍
- 深入理解Hibernate中的flush机制
- 解析使用jdbc,hibernate处理clob/blob字段的详解
- 浅析java程序中hibernate的应用总结
- 关于Hibernate的一些学习心得总结
- Hibernate管理Session和批量操作分析
- 基于spring+hibernate+JQuery开发之电子相册(附源码下载)
- java Hibernate 一对多自身关联问题
- Hibernate的学习笔记(2)
- Hibernate的学习笔记(3)