Hibernate 鉴别器列不适用于JPA
我有一个名为Hibernate 鉴别器列不适用于JPA,hibernate,jpa,Hibernate,Jpa,我有一个名为User的基类,我使用单表继承策略 @实体 @继承(策略=InheritanceType.SINGLE_表) @鉴别器列(name=“User\u Type”) 公共类用户{ 我还有一个叫做Artist的类,它扩展了User类 @Entity(name=“Artist”) @鉴别器值(“艺术家”) 公共类艺术家扩展用户{ 数据库中的表已创建,我有2行,有2种艺术家类型 这就是我试图从数据库中获取艺术家的方式。艺术家实例似乎无法正常工作,“艺术家”列表仍然为空 EntityMan
User
的基类,我使用单表继承策略
@实体
@继承(策略=InheritanceType.SINGLE_表)
@鉴别器列(name=“User\u Type”)
公共类用户{
我还有一个叫做Artist
的类,它扩展了User
类
@Entity(name=“Artist”)
@鉴别器值(“艺术家”)
公共类艺术家扩展用户{
数据库中的表已创建,我有2行,有2种艺术家类型
这就是我试图从数据库中获取艺术家的方式。艺术家实例似乎无法正常工作,“艺术家”列表仍然为空
EntityManager em=emf.createEntityManager();
em.getTransaction().begin();
List result=em.createQuery(“来自用户”,User.class).getResultList();
em.getTransaction().commit();
em.close();
//仅从结果列表中获取艺术家
//这里出错
for(用户u:结果){
if(艺术家的u实例){
艺术家。添加((艺术家)u);
}
}
当我调试它时,除了User\u Type
列之外,所有列都会列出,我认为这就是问题所在。我该如何解决这个问题
更新
问题是在“persistence.xml”中没有指定实体类。嗯,这很奇怪。架构是使用Hibernate创建的吗?使用“来自艺术家”的“代码”时会发生什么取而代之的是?你确定在实体扫描过程中拾取了
Artist
吗?@crizzis我修复了这个问题…我必须在persistence.xml中指定所有实体类。现在它工作了。