java - `Unknown entity` hibernate 异常

标签 java hibernate orm hibernate-mapping

我正在学习 hibernate ,我不明白为什么会出现这个错误。我尝试搜索,但找不到对我有帮助的解决方案。我想了解为什么会出现此错误。

Exception in thread "main" org.hibernate.MappingException: Unknown entity: com.simpleprogrammer.User
at org.hibernate.internal.SessionFactoryImpl.getEntityPersister(SessionFactoryImpl.java:776)
at org.hibernate.internal.SessionImpl.getEntityPersister(SessionImpl.java:1451)
at org.hibernate.event.internal.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:100)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.saveWithGeneratedOrRequestedId(DefaultSaveOrUpdateEventListener.java:192)
at org.hibernate.event.internal.DefaultSaveEventListener.saveWithGeneratedOrRequestedId(DefaultSaveEventListener.java:38)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.entityIsTransient(DefaultSaveOrUpdateEventListener.java:177)
at org.hibernate.event.internal.DefaultSaveEventListener.performSaveOrUpdate(DefaultSaveEventListener.java:32)
at org.hibernate.event.internal.DefaultSaveOrUpdateEventListener.onSaveOrUpdate(DefaultSaveOrUpdateEventListener.java:73)
at org.hibernate.internal.SessionImpl.fireSave(SessionImpl.java:678)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:670)
at org.hibernate.internal.SessionImpl.save(SessionImpl.java:665)
at Program.main(Program.java:23)

请帮忙,我已经浪费了很多时间来调试这个。 这是我的简单程序,

程序.java

import org.hibernate.Session;
import com.simpleprogrammer.HibernateUtilities;
import com.simpleprogrammer.User;

public class Program {

/**
 * @param args
 * @throws ClassNotFoundException 
 * @throws SQLException 
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.println("Hello World");
    Session session = HibernateUtilities.getSessionFactory().openSession();

    session.beginTransaction();

    User user = new User();
    user.setName("Deepak");
    user.setTotal(130);
    user.setGoal(150);
    session.save(user);

    session.getTransaction().commit();

    session.close();

}


}

HibernateUtilities.java

package com.simpleprogrammer;
import org.hibernate.HibernateException;

import org.hibernate.SessionFactory;

import org.hibernate.boot.registry.StandardServiceRegistryBuilder;

import org.hibernate.cfg.Configuration;

import org.hibernate.service.ServiceRegistry;



public class HibernateUtilities {

public static SessionFactory sessionFactory;
public static ServiceRegistry serviceRegistry;

static{
    try{
        Configuration configuation = new Configuration().configure();

        serviceRegistry = new StandardServiceRegistryBuilder().applySettings(configuation.getProperties()).build();

        sessionFactory = configuation.buildSessionFactory(serviceRegistry);

    }catch(HibernateException e){
        System.out.println("Error while creating Session Factory.");
        e.printStackTrace();
    }
}

public static SessionFactory getSessionFactory(){
    return sessionFactory;
}

}

用户.java

package com.simpleprogrammer;

public class User {

private int id;
private String name;
private int total;
private int goal;
public int getId() {
    return id;
}
public void setId(int id) {
    this.id = id;
}
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
public int getTotal() {
    return total;
}
public void setTotal(int total) {
    this.total = total;
}
public int getGoal() {
    return goal;
}
public void setGoal(int goal) {
    this.goal = goal;
}


}

用户.hbm.xml

<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD     3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<!-- Generated Oct 28, 2015 8:05:49 PM by Hibernate Tools 3.4.0.CR1 -->
<hibernate-mapping>
<class name="com.simpleprogrammer.User" table="users">
    <id name="id" type="int">
        <column name="id" />
        <generator class="identity" />
    </id>
    <property name="name" type="java.lang.String">
        <column name="name" />
    </property>
    <property name="total" type="int">
        <column name="total" />
    </property>
    <property name="goal" type="int">
        <column name="goal" />
    </property>
</class>
</hibernate-mapping>

hibernate.cfg.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
    "-//Hibernate/Hibernate Configuration DTD 3.0//EN"
    "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
    <property name="hibernate.connection.driver_class">com.mysql.jdbc.Driver</property>
    <property name="hibernate.connection.password">admin</property>
    <property name="hibernate.connection.url">jdbc:mysql://localhost:3306</property>
    <property name="hibernate.connection.username">root</property>
    <property name="hibernate.default_schema">protein_tracker</property>
    <property name="hibernate.dialect">org.hibernate.dialect.MySQLDialect</property>
    <mapping resource="com/simpleprogrammer/User.hbm.xml" />
</session-factory>

enter image description here

最佳答案

实际上我正在使用 Hibernate 5 jars 。但该教程实际上是针对 Hibernate 4 的。当我使用 Hibernate 4 jar 时,一切似乎都工作正常。

关于java - `Unknown entity` hibernate 异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33404575/

相关文章:

java - 如何创建一个模式来查找 *.ABS 序列?

java - 在 Spring Data JPA 和 Spring Boot 应用程序中启用全局 Hibernate 过滤器

java - Hibernate findById 的问题

python - 为什么 Django 会为 auth.User.username 设置一个较短的外键最大长度?

go - 如何在beego orm中将结构中的特定键设置为外键?

php - Doctrine 2 与关联的继承映射

java - 加载文件,netbeans的默认位置

java - SimpleJpaRepository 不修改持久化实体

java - MigLayout 分成 2 行

hibernate - 如何与 JPA/Hibernate 建立基本的多对多关系?