Java “错误”;未找到映射(资源):hibernateeexposed/Person.hbm.xml;

Java “错误”;未找到映射(资源):hibernateeexposed/Person.hbm.xml;,java,hibernate,maven,intellij-idea,Java,Hibernate,Maven,Intellij Idea,我是Hibernate新手,我正在尝试使用IntelliJ Idea中的Maven在Java中创建一个小应用程序。 我在上面的标题中遇到了这个错误,而在堆栈中相同问题的答案直到现在都没有帮助我 这个文件“Person.hbm.xml”是什么。我必须创造它? 一旦它是一个映射资源,Hibernate不应该自己创建它吗 当我运行我的小程序时,出现了以下错误: Exception in thread "main" org.hibernate.boot.MappingNotFoundException:

我是Hibernate新手,我正在尝试使用IntelliJ Idea中的Maven在Java中创建一个小应用程序。 我在上面的标题中遇到了这个错误,而在堆栈中相同问题的答案直到现在都没有帮助我

这个文件“Person.hbm.xml”是什么。我必须创造它? 一旦它是一个映射资源,Hibernate不应该自己创建它吗

当我运行我的小程序时,出现了以下错误:

Exception in thread "main" org.hibernate.boot.MappingNotFoundException: Mapping (RESOURCE) not found : HibernateExposed/Person.hbm.xml : origin(HibernateExposed/Person.hbm.xml)
    at org.hibernate.boot.spi.XmlMappingBinderAccess.bind(XmlMappingBinderAccess.java:56)
    at org.hibernate.boot.MetadataSources.addResource(MetadataSources.java:274)
    at org.hibernate.boot.cfgxml.spi.MappingReference.apply(MappingReference.java:70)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:412)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:86)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726)
    at Persistencia.HibernateUtils.<init>(HibernateUtils.java:10)
    at Main.Main.main(Main.java:16)
下面是我试图坚持的实体类:

import javax.persistence.Entity;
import java.sql.Date;

@Entity
public class Produto {


    private String nome;
    private int cod;
    private float valor;
    private Date dataValidade;

    protected Produto() {
    }

    public Produto(String nome, int cod, float valor, Date dataValidade) {
        this.nome = nome;
        this.cod = cod;
        this.valor = valor;
        this.dataValidade = dataValidade;
    }



    /*public Produto getProdutoPorNome(String nome) {

        Produto buscaResult  = //Resultado da busca.
    }
    */

    public boolean excluirProduto(int cod) {

        boolean deuCerto=false;

        return deuCerto;
    }
}
我的主要课程是:

package Main;

import Persistencia.HibernateUtils;
import ProcessoDeVenda.Produto;
import org.hibernate.Session;
import org.hibernate.SessionFactory;

import java.util.Date;

public class Main {

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        Session sessao;

        HibernateUtils hiber = new HibernateUtils();
        SessionFactory session = hiber.getSessionFactory();
        Produto produto;

        try {
            sessao = session.openSession();

            Date data = new Date(05, 12, 2018);
            float valor = (float) 42000.0;

            produto = new Produto("Carro", 1, valor, (java.sql.Date) data);

            System.out.println(produto.toString());

        }catch (Exception sqlException) {
            System.out.println(sqlException);
        }

    }

}
项目结构,包含hibernate.cfg.xml文件的位置

和我的hibernate.cfg.xml文件内容: 查看“映射资源”标记


org.h2.Driver
jdbc:h2:~/PDV
卢卡斯
我的通行证
1.
org.hibernate.dial.h2方言
线
org.hibernate.cache.NoCacheProvider
真的
更新
现在,我尝试直接在hibernate.cfg.xml上映射类。(为什么hibernate不自己做这个?我用的是膏油…)

我已经删除了

<mapping resource="HibernateExposed/Person.hbm.xml" />

在我的位置上,我绘制了这个类:

   <mapping class="src.main.java.ProcessoDeVenda.Produto" />

错误就变成这样了:

Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:271)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:417)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:86)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726)
    at Persistencia.HibernateUtils.<init>(HibernateUtils.java:10)
    at Main.Main.main(Main.java:16)
Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect
    at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:105)
    at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:123)
    at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:41)
    at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.addConnections(DriverManagerConnectionProviderImpl.java:363)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:282)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:260)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections$Builder.build(DriverManagerConnectionProviderImpl.java:401)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:112)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:75)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259)
    ... 15 more
Caused by: org.h2.jdbc.JdbcSQLException: Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-197]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
    at org.h2.message.DbException.get(DbException.java:168)
    at org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:188)
    at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:168)
    at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:100)
    at org.h2.engine.Database.getPageStore(Database.java:2538)
    at org.h2.engine.Database.open(Database.java:709)
    at org.h2.engine.Database.openDatabase(Database.java:286)
    at org.h2.engine.Database.<init>(Database.java:280)
    at org.h2.engine.Engine.openSession(Engine.java:66)
    at org.h2.engine.Engine.openSession(Engine.java:179)
    at org.h2.engine.Engine.createSessionAndValidate(Engine.java:157)
    at org.h2.engine.Engine.createSession(Engine.java:140)
    at org.h2.engine.Engine.createSession(Engine.java:28)
    at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:351)
    at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124)
    at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:103)
    at org.h2.Driver.connect(Driver.java:69)
    at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38)
    ... 30 more
Caused by: java.lang.IllegalStateException: The file is locked: nio:C:/Users/Lucas_Pletsch/PDV.mv.db [1.4.197/7]
    at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:870)
    at org.h2.mvstore.FileStore.open(FileStore.java:173)
    at org.h2.mvstore.MVStore.<init>(MVStore.java:350)
    at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2934)
    at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:155)
    ... 45 more
线程“main”org.hibernate.service.spi.ServiceException中的异常:无法创建请求的服务[org.hibernate.engine.jdbc.env.spi.jdbc环境] 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:271) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 位于org.hibernate.engine.jdbc.internal.jdbcservicesiml.configure(jdbcservicesiml.java:51) 位于org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 位于org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352) 位于org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111) 位于org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83) 位于org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:417) 位于org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:86) 位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691) 位于org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726) HibernateUtils.(HibernateUtils.java:10) 在Main.Main.Main(Main.java:16) 原因:org.hibernate.exception.JDBCConnectionException:调用驱动程序#connect时出错 位于org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:105) 位于org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:123) 位于org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:41) 位于org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58) 位于org.hibernate.engine.jdbc.connections.internal.DriverManager连接ProviderImpl$PooledConnections.addConnections(DriverManager连接ProviderImpl.java:363) 位于org.hibernate.engine.jdbc.connections.internal.DriverManager连接ProviderImpl$PooledConnections。(DriverManager连接ProviderImpl.java:282) 位于org.hibernate.engine.jdbc.connections.internal.DriverManager连接ProviderImpl$PooledConnections。(DriverManager连接ProviderImpl.java:260) 位于org.hibernate.engine.jdbc.connections.internal.DriverManager连接ProviderImpl$PooledConnections$Builder.build(DriverManager连接ProviderImpl.java:401) 位于org.hibernate.engine.jdbc.connections.internal.DriverManager连接ProviderImpl.buildPool(DriverManager连接ProviderImpl.java:112) 位于org.hibernate.engine.jdbc.connections.internal.DriverManager连接ProviderImpl.configure(DriverManager连接ProviderImpl.java:75) 位于org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210) 位于org.hibernate.engine.jdbc.env.internal.jdbconvironmentinitiator.buildJdbcConnectionAccess(jdbconvironmentinitiator.java:145) 位于org.hibernate.engine.jdbc.env.internal.jdbconvironmentinitiator.initiateService(jdbconvironmentinitiator.java:66) 位于org.hibernate.engine.jdbc.env.internal.jdbconvironmentinitiator.initiateService(jdbconvironmentinitiator.java:35) 位于org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88) 位于org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259) ... 还有15个 原因:org.h2.jdbc.JdbcSQLException:数据库可能已在使用中:null。可能的解决方案:关闭所有其他连接;使用服务器模式[90020-197] 位于org.h2.message.DbException.getJdbcSQLException(DbException.java:357) 位于org.h2.message.DbException.get(DbException.java:168) 在org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEng
   <mapping class="src.main.java.ProcessoDeVenda.Produto" />
Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:271)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:233)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
    at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:51)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.handleTypes(MetadataBuildingProcess.java:352)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:111)
    at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.build(MetadataBuildingProcess.java:83)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:417)
    at org.hibernate.boot.internal.MetadataBuilderImpl.build(MetadataBuilderImpl.java:86)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:691)
    at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:726)
    at Persistencia.HibernateUtils.<init>(HibernateUtils.java:10)
    at Main.Main.main(Main.java:16)
Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect
    at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator$1$1.convert(BasicConnectionCreator.java:105)
    at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:123)
    at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:41)
    at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.addConnections(DriverManagerConnectionProviderImpl.java:363)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:282)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:260)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections$Builder.build(DriverManagerConnectionProviderImpl.java:401)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:112)
    at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:75)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:94)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:242)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:210)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66)
    at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35)
    at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:88)
    at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:259)
    ... 15 more
Caused by: org.h2.jdbc.JdbcSQLException: Database may be already in use: null. Possible solutions: close all other connection(s); use the server mode [90020-197]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:357)
    at org.h2.message.DbException.get(DbException.java:168)
    at org.h2.mvstore.db.MVTableEngine$Store.convertIllegalStateException(MVTableEngine.java:188)
    at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:168)
    at org.h2.mvstore.db.MVTableEngine.init(MVTableEngine.java:100)
    at org.h2.engine.Database.getPageStore(Database.java:2538)
    at org.h2.engine.Database.open(Database.java:709)
    at org.h2.engine.Database.openDatabase(Database.java:286)
    at org.h2.engine.Database.<init>(Database.java:280)
    at org.h2.engine.Engine.openSession(Engine.java:66)
    at org.h2.engine.Engine.openSession(Engine.java:179)
    at org.h2.engine.Engine.createSessionAndValidate(Engine.java:157)
    at org.h2.engine.Engine.createSession(Engine.java:140)
    at org.h2.engine.Engine.createSession(Engine.java:28)
    at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:351)
    at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:124)
    at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:103)
    at org.h2.Driver.connect(Driver.java:69)
    at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38)
    ... 30 more
Caused by: java.lang.IllegalStateException: The file is locked: nio:C:/Users/Lucas_Pletsch/PDV.mv.db [1.4.197/7]
    at org.h2.mvstore.DataUtils.newIllegalStateException(DataUtils.java:870)
    at org.h2.mvstore.FileStore.open(FileStore.java:173)
    at org.h2.mvstore.MVStore.<init>(MVStore.java:350)
    at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2934)
    at org.h2.mvstore.db.MVTableEngine$Store.open(MVTableEngine.java:155)
    ... 45 more
  <dependency>
       <groupId>com.h2database</groupId>
       <artifactId>h2</artifactId>
  </dependency>
<entity-mappings>
    <entity class="your_package_name.Produto" name="Produto">        
        <attributes>
            <property name="nome"
                type="value"
                not-null="value"
                update="value"/>
//put all other attributes from Produto class
        </attributes>
   </entity>
</entity-mappings>