1

我正在尝试使用 Hibernate 来坚持一个非常简单的类。我没有使用 Spring,我没有使用映射文件,只是简单的注释。我正在使用javax.persistence.Entity而不是org.hibernate.Entity. 尽管如此,当运行 JUnit 测试(位于与类不同的包中,一个测试包中)时,我得到testAddUser caused an ERROR: Unknown entity: restauracja.PersonalInfo.

我究竟做错了什么?

更新:这就是我初始化会话工厂的方式:

private final static SessionFactory factory;
static {
    Configuration cfg = new AnnotationConfiguration().configure("hibernate.cfg.xml");
    factory = cfg.buildSessionFactory();
}

并运行测试:

@Test
public void testAddUser() {
    Session session = factory.openSession();
    Transaction tx = session.beginTransaction();

    PersonalInfo pi = new PersonalInfo("Jan", "Kowalski", "Krótka 6a", "Gniezno", 123456l);

    session.saveOrUpdate(pi);
    tx.commit();
    session.close();

}
4

1 回答 1

4

Hibernate 通常有一个类的集合,它知道并调查了注解。我怀疑您需要将您的restauracja.PersonalInfo课程添加到该集合中。例如,在我们的测试工具中,我们执行以下操作:

AnnotationConfiguration cfg = new AnnotationConfiguration();
for (Class<?> clazz : databaseConfig.getHibernateClasses()) {
    cfg.addAnnotatedClass(clazz);
}

特定单元测试使用的每个类都需要指定测试所需的所有类hibernate必须在该列表中。我怀疑类列表可能在hibernate.cfg.xml文件中,您只需将缺少的类添加到该列表中。

于 2012-05-08T20:51:03.967 回答