hibernate 4.3 - 列表中未返回的实体类实例

时间:2015-01-23 10:12:31

标签: java hibernate hibernate-4.x

我在没有Spring的情况下使用Hibernate 4.3.8。我正在使用Hibernate的会话API。我有一个实体类Category,我已使用@Entity@Table@Id@Column进行了正确注释,依此类推。我不使用.hbm.xml描述符文件,我只想在我的域/实体java源/类文件中使用注释。

1)好的,我以这种方式创建了我的休眠SessionFactory

        Configuration configuration = new Configuration().configure();          
        // configuration.addClass(Category.class);
        StandardServiceRegistryBuilder builder = 
                new StandardServiceRegistryBuilder().applySettings(configuration.getProperties());
        configuration.addPackage("com.test.db.domain");
        factory = configuration.buildSessionFactory(builder.build());

2)然后当我尝试这个时:

session.createCriteria(Category.class).list();

我刚回到一个空列表(我希望得到数据库表中的所有类别)。 Category类位于com.test.db.domain包中。

这可能是什么原因?我被困了将近一天。

3)请注意,如果我使用session.createSQLQuery,我可以连接到我的数据库并获取所有类别。

4)另请注意,我不想使用Hibernate的EntityManager API,JPA以及与JPA相关的XML描述符。

1 个答案:

答案 0 :(得分:0)

问题原因如下:调用configuration.addPackage并不能达到我最初的预期。另见:

hibernate 4.3.x - load all entity annotated classes

不应该调用addPackage而应该做的是从他自己的实体/域类为每个类调用configuration.addAnnotatedClass