0

I have a maven project that I am using with hibernate-core 4.2.3.Final. I have followed the advice provided here:

Where to place hibernate config?

Hibernate Tutorial - Where to put Mapping File?

and the config file in src/main/resources looks like this:

<?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="connection.url">jdbc:mysql://localhost:3306/justHibernate</property>
        <property name="connection.driver_class">com.mysql.jdbc.Driver</property>
        <property name="connection.username">root</property>
        <property name="connection.password">12345</property>
        <property name="dialect">org.hibernate.dialect.MySQL5Dialect</property>
        <mapping resource="com/mycompany/app/model/Movie.hbm.xml" />
    </session-factory>
</hibernate-configuration>

while the mapping file is within the package com.mycompany.app.model alongside the Movie class:

<?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.mycompany.app.model.Movie" table="Movies">
        <id name="id" column="id">
            <generator class="native"/>
        </id>
        <property name="title" column="title"/>
        <property name="director" column="director"/>
        <property name="synopsis" column="synopsis"/>
    </class>
</hibernate-mapping>

Exception

The configuration cannot find the mapping file.

INFO: HHH000221: Reading mappings from resource: com/mycompany/app/model/Movie.hbm.xml
Exception in thread "main" org.hibernate.MappingNotFoundException: resource: com/mycompany/app/model/Movie.hbm.xml not found
    at org.hibernate.cfg.Configuration.addResource(Configuration.java:738)
    at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2167)
    at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2139)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2119)
    at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2072)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1987)
    at org.hibernate.cfg.Configuration.configure(Configuration.java:1966)
    at com.mycompany.app.MovieManager.initSessionFactory(MovieManager.java:22)
    at com.mycompany.app.MovieManager.<init>(MovieManager.java:17)
    at com.mycompany.app.App.main(App.java:27)
2
  • com/mycompany/app/model/Movie.hbm.xml not found means either file is missing or file is misplaced meaning path might be wrong Commented Jan 4, 2019 at 7:16
  • where did you place Movie.hbm.xml ? is it under src ? Commented Jan 4, 2019 at 7:42

1 Answer 1

1

Place Movie.hbm.xml under src/main/resources and change path in your config file as follows,

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

Hope this helps.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.