0

I am migrating entity mapping from an annotations app to hbm.xml

I error this error and not found the solution. Thanks

java.lang.Exception: Not an entity: class com.enterprise.package.user.domain.User

I have hibernate.cfg.xml in the resources folder, User.hbm.xml in one package and User.class in another

User.hbm.xml

<?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.enterprise.package.role.domain.User" table="user">
        <id name="id" type="java.lang.Long">
            <column name="id" />
            <generator class="identity" />
        </id>
        <property name="username" column="username" type="java.lang.String" unique="true"/>
        <property name="password" column="password" type="java.lang.String"/>
        <many-to-one name="role" column="role_id" class="com.enterprise.package.role.domain.Role" not-null="true"/>
    </class>
</hibernate-mapping>

User.class

public final class User {
    private Long   id;
    private String username;
    private String password;
    private Role   role;

    public User() {
    }

    public User(Long id) {
        this.id = id;
    }

    public User(Long id, String username, String password, Role role) {
        this.id       = id;
        this.username = username;
        this.password = password;
        this.role     = role;
    }
...
}


hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
        "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
        "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
    <session-factory>
        <property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
        <property name="hibernate.connection.url">jdbc:mysql://localhost:3306/db</property>
        <property name="hibernate.connection.username">root</property>
        <property name="hibernate.connection.password">**</property>
        <property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property>
        <property name="show_sql">true</property>


        <mapping package="com/enterprise/package/user/infrastructure/persistence/hibernate/Role.hbm.xml"/>
        <mapping package="com/enterprise/package/user/infrastructure/persistence/hibernate/User.hbm.xml"/>
    </session-factory>
</hibernate-configuration>

1 Answer 1

0

I think the package of User class may be wrong in User.hbm.xml (we cant see in your snippet the package of this class)...

In User.hbm.xml instead of

com.enterprise.package.role.domain.User

may be

com.enterprise.package.user.domain.User.

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

2 Comments

I just realized that wrong copy and paste, both entities are in com.enterprise.package.user.domain. *
yeah, it happens... if that was the problem, you may accept my answer, thkx

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.