java - 未找到 hibernate 映射资源

标签 java hibernate

我有一个 MappingNotFoundException:资源:未找到 TradFileRecord.hbm.xml

这是核心配置

这个文件(如 hibernate.cfg.xml 文件)位于 src/main/resources

hibernate 文件的内容

     <?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-configuration SYSTEM 
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
   <session-factory>
   <property name="hibernate.dialect">
      org.hibernate.dialect.PostgreSQLDialect
   </property>
   <property name="hibernate.connection.driver_class">
      org.postgresql.Driver
   </property>
   <property name="hibernate.connection.url">
      jdbc:postgresql://localhost:5432/Subtitlor
   </property>
   <property name="hibernate.connection.username">
      postgres
   </property>
   <property name="hibernate.connection.password">
      1234
   </property>

    <property name="show_sql">true</property>

      <!-- mapping files -->
        <mapping resource="TradFileRecord.hbm.xml"/>

        <!-- cache settings -->
        <class-cache class="com.subtitlor.bean.TradFileRecord" usage="read-write"/>


<!-- <mapping resource="src/main/resources/TradFileRecord.hbm.xml"/> -->
<!-- <mapping class="com/subtitlor/bean/TradFileRecord"/> -->
</session-factory>
</hibernate-configuration>

以及映射文件的内容

<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC 
 "-//Hibernate/Hibernate Mapping DTD//EN"
 "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> 

<hibernate-mapping>
   <class name="com.subtitlor.bean.TradFileRecord" table="tradfilerecord">
      <meta attribute="class-description">
         This class contains the TradFileRecord detail. 
      </meta>
      <id name="idLigne" type="int" column="idline">
         <generator class="native"/>
      </id>
      <property name="timeValues" column="timevalues" type="string"/>
      <property name="originalLine1" column="text1" type="string"/>
      <property name="originalLine2" column="text2" type="int"/>
      <property name="TranslatedLine1" column="translatedtext1" type="string"/>
      <property name="TranslatedLine2" column="translatedtext2" type="string"/>
      <property name="fileName" column="filename" type="string"/>
      <property name="descriptionFile" column="descriptionfile" type="string"/>
   </class>
</hibernate-mapping>

和注释配置我有另一个错误:无法加载注释

你能帮我吗

我忘记了我的 pom.xml

<dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-core</artifactId>
            <version>4.0.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.0.1.Final</version>
        </dependency>
    <!--    <dependency>
            <groupId>org.hibernate.common</groupId>
            <artifactId>hibernate-commons-annotations</artifactId>
            <version>4.0.1.Final</version>
            <classifier>tests</classifier>
        </dependency> -->
    <!--    <dependency>
            <groupId>hibernate-annotations</groupId>
            <artifactId>hibernate-annotations</artifactId>
            <version>3.3.0.GA</version>
        </dependency> -->
        <!-- <dependency>
            <groupId>hibernate-commons-annotations</groupId>
            <artifactId>hibernate-commons-annotations</artifactId>
            <version>3.0.0.GA</version>
        </dependency> -->
        <dependency>
            <groupId>org.hibernate.javax.persistence</groupId>
            <artifactId>hibernate-jpa-2.0-api</artifactId>
            <version>1.0.1.Final</version>
        </dependency>
        <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-entitymanager</artifactId>
            <version>4.0.1.Final</version>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>1.0.0.GA</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
   <groupId>org.hibernate</groupId>
   <artifactId>hibernate-search-orm</artifactId>
   <version>5.5.2.Final</version>
</dependency>

最佳答案

你需要确保 Maven 知道它是一个资源,所以把它放在 src/main/resources 目录中,然后 Maven 知道将它复制到位置,然后它就会成为一个资源。

除了构建源 jar 之外,Maven 将使用 src/main/java 进行构建,但不会将源复制到目标目录,因此它不在已完成的 jar 中。

就我个人而言,我会将映射文件放在与类相同的包中,即 src/main/resources/com/subtitlor/bean/TradFileRecord.hbm.xml。

关于java - 未找到 hibernate 映射资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36659269/

相关文章:

java - EclipseLink 对实体 "setter"方法的多次调用

java - 将用户输入更改为小写

java - Hibernate 5.0.2 与 Sqlite — 由于错误而无法使其工作

spring - HikariCP 空闲连接在连接池中保持事件状态

mysql - JPA/Hibernate/mySql 中没有持久化数据

java - 微调器文本不显示默认值,也不显示所选值

java - Httprest 性能改进

java - 在 java 中将对象列表转换为 JSON 数组 - Spring Boot api 测试

java - 如何在 querydsl 中使用别名?

java - 位置 API - 处理 NullPointerException