我对Hibernate有一些问题。我使用maven并拥有这样的项目结构:http://i.imgur.com/UAYcyRc.png
(对不起,我无法附上它,因为没有声誉)
我使用这种结构:
sessionFactory = new Configuration().configure("/resources/hibernate.cfg.xml").buildSessionFactory();
但它没有用,我收到了这个错误:
Initial SessionFactory creation failed.org.hibernate.HibernateException:... not found
我应该在我的pom文件或其他任何内容中添加内容吗?
答案 0 :(得分:0)
hibernate.cfg.xml应该在src / main / resources中。在src中,它不会被添加到运行时的类路径中。 在构建路径配置中,检查src / main / resources是否未从类路径中排除,并且确实是源文件夹。
答案 1 :(得分:0)
请按照以下方式更改您的代码;
SessionFactory sessionFactory = null;
Configuration configuration = new Configuration();
configuration.configure("/resources/hibernate.cfg.xml");
ServiceRegistry serviceRegistry = new StandardServiceRegistryBuilder()
.applySettings(configuration.getProperties()).build();
sessionFactory = configuration.buildSessionFactory(serviceRegistry);
我有一个类似你的项目,给定的代码示例就像魅力一样。
答案 2 :(得分:0)
请按照以下步骤操作:
只需确保hibernate.cfg.xml位于类路径的根目录,方法是在 src / main / resources 下指定它,以便它直接位于 web-下构建应用程序后的inf / classes
不要为 hibernate.cfg.xml 文件指定任何绝对路径
请添加以下行以获取SessionFactory
Configuration configuration = new Configuration().configure();
ServiceRegistryBuilder registry = new ServiceRegistryBuilder();
registry.applySettings(configuration.getProperties());
ServiceRegistry serviceRegistry = registry.buildServiceRegistry();
SessionFactory sessionFactory = configuration.buildSessionFactory(serviceRegistry);
Session session = sessionFactory.openSession();