Java 在不同的文件夹位置休眠映射文件和配置文件

Java 在不同的文件夹位置休眠映射文件和配置文件,java,hibernate,Java,Hibernate,自从我使用Hibernate已经十多年了,所以很多事情我都忘记了 我正在尝试使用配置文件和hbm映射文件为不同文件夹中的表设置Hibernate 所以我这样做代码: /** * Initialize the Hibernate Session Factory. */ private void init () { try { if (sessionFactory == null) { Configuration co

自从我使用Hibernate已经十多年了,所以很多事情我都忘记了

我正在尝试使用配置文件和hbm映射文件为不同文件夹中的表设置Hibernate

所以我这样做代码:

/**
 * Initialize the Hibernate Session Factory.
 */
private void init () {

    try {

        if (sessionFactory == null) {
            
            Configuration configuration = new Configuration();
            
            configuration.addDirectory(new File("/opt/webserver/datasources/hibernate-tables-cfg"));
            
            sessionFactory = configuration.configure(new File("/opt/webserver/datasources/hibernate-cfg/hibernate.cfg.xml")).buildSessionFactory();
        
        } else if (sessionFactory.isClosed()) {
            sessionFactory = new Configuration().configure().buildSessionFactory();
        }

    } catch (HibernateException e) {
        
        logger.logException("Unable to get Connection to the Database: " + e.getMessage(), e);
    }
}
在配置文件中,我的映射标记设置如下:

<mapping resource = "deviceGrouping.hbm.xml"/>

但我一直得到一个例外:

org.hibernate.boot.MappingNotFoundException:找不到映射(资源):deviceGrouping.hbm.xml:来源(deviceGrouping.hbm.xml)

我假设,因为我在配置中添加映射文件的目录,所以我不必在XML文件中提供任何路径(相对路径或绝对路径)


任何指示都会有帮助。谢谢。

不确定如何运行应用程序,但这些文件必须可以在类路径上访问。除此之外,我建议您使用注释模型。XML被放置在一个外部目录中,在部署期间文件被复制到该目录中。我将尝试阅读注释模型。