Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Hibernate 鉴别器列不适用于JPA_Hibernate_Jpa - Fatal编程技术网

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中指定所有实体类。现在它工作了。