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
Jpa Eclipselink类提取器_Jpa_Eclipselink_Extractor - Fatal编程技术网

Jpa Eclipselink类提取器

Jpa Eclipselink类提取器,jpa,eclipselink,extractor,Jpa,Eclipselink,Extractor,我有两个实体对象A和B。B扩展了A,我在A上有@ClassExtractor,以从数据库行返回正确的类类型。然而,如果我想查询一个类,它会检查类提取器吗 A.java @Entity @Table @ClassExtractor(MyClassExtractor.class) public class A implements Serializable{ ... } B.java @Entity @Table public class A extends B{ ... } MyClassEx

我有两个实体对象A和B。B扩展了A,我在A上有
@ClassExtractor
,以从数据库行返回正确的类类型。然而,如果我想查询一个类,它会检查类提取器吗

A.java

@Entity
@Table
@ClassExtractor(MyClassExtractor.class)
public class A implements Serializable{
...
}
B.java

@Entity
@Table
public class A extends B{
...
}
MyClassExtractor.java

public class MyClassExtractor extends ClassExtractor{
@SuppressWarnings("rawtypes")
@Override
public Class extractClassFromRow(Record record, Session session){
return B.class;
}
所以,当我对A进行查询时,它会转到类提取器并返回B吗?
提前谢谢

“什么”会检查类提取器吗?因为这不是JPA规范的一部分,所以您可以放心地知道JPA实现不会看到it@NeilStockton如果我对A进行查询,A是否会转到
MyClassExtractor
并返回B?由于它是用@classextractori注释的,如果您对进行查询,JPA提供程序将实例化的实例,因为这就是查询的目的。JPA提供者与这个ClassExtractor注释无关。搜索显示此注释来自ECLIPSELINK。所以,如果你想问关于日食的问题,为什么不在问题中提及它呢?任何其他JPA提供商都会完全忽略它。EclipselinkAPI!=不是“JPA文档”的JPA APINo。这是ECLIPSELINK文档。EclipselinkAPI!=jpaapi。阅读JPA规范,你会发现没有提到它!您的类提取器有一个包名“org.eclipse.persistence.descriptors”,这应该是您的一个线索。。。ECLIPSELINK,而不是javax.persistence(JPA),正如Neil所指出的,您应该查看ECLIPSELINK文档,在那里您将看到一个带有ClassExtractor注释的示例。如果它还指定了代码未显示的“继承”注释,则它将在查询根类时运行。