Java Hibrate 4.3-列表中未返回实体类实例
我使用的是Hibernate4.3.8,没有Spring。我正在使用Hibernate的会话API。我有一个实体类Java Hibrate 4.3-列表中未返回实体类实例,java,hibernate,hibernate-4.x,Java,Hibernate,Hibernate 4.x,我使用的是Hibernate4.3.8,没有Spring。我正在使用Hibernate的会话API。我有一个实体类Category,我用@entity、@Table、@Id、@Column等正确地注释了它。我不使用.hbm.xml描述符文件,我只想使用域/实体java源/类文件中的注释 1) 好的,我用以下方式创建hibernateSessionFactory: Configuration configuration = new Configuration().configure
Category
,我用@entity
、@Table
、@Id
、@Column
等正确地注释了它。我不使用.hbm.xml描述符文件,我只想使用域/实体java源/类文件中的注释
1) 好的,我用以下方式创建hibernateSessionFactory
:
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()代码>
我只是得到一个空列表(我希望得到DB表中的所有类别)。类别
类位于com.test.db.domain包中
这可能是什么原因?我在这件事上耽搁了将近一天。
3) 请注意,如果使用session.createSQLQuery
,我可以连接到数据库并获取所有类别
4) 还要注意,我不想使用Hibernate的EntityManager API、JPA和与JPA相关的XML描述符 问题是:调用configuration.addPackage
并没有达到我最初期望的效果。另见:
与其调用addPackage
,不如从自己的实体/域类为每个类调用configuration.addAnnotatedClass
您不能使用内存数据库中的测试来使用本地资源进行测试吗?然后您只需执行createQuery().getResultList()
即可获得所有结果。@ha9u63ar谁说我使用内存数据库的?我使用MySQL。而且,我没有指定任何地方的资源。如果没有persistence.xml,我可以做我想做的事情吗?或者这是不可能的?而且,标准
没有方法getResultList
。我试图运行一个标准
,而不是一个查询
。这不是一个建议,只是一个问题。另外,在调用session.createCritera(Category.class).list()之前,您是否添加了任何记录?JBoss文档在这里有一个例子-@ha9u63ar哦,我明白了。好吧,那不是我想做的。我试图不使用persistence.xml,只使用会话API和注释,而不是hbm.xml映射文件。@ha9u63ar我有记录,请阅读我问题中的第3项)。