【发布时间】:2016-01-28 13:07:31
【问题描述】:
想象一种情况:
@javax.persistence.Inheritance(strategy=javax.persistence.InheritanceType.JOINED)
@javax.persistence.DiscriminatorColumn
@javax.persistence.Entity
@javax.persistence.Table(name="PARENT")
public abstract class Parent{
...
}
@javax.persistence.Entity
@javax.persistence.Table(name="A")
public class A extends Parent{
...
}
@javax.persistence.Entity
@javax.persistence.Table(name="B")
public class B extends Parent{
...
}
Parent p = new A();
现在我们称之为:
p instance of A
总是返回 false!!
在 OpenJPA 上工作正常!
我应该提交错误吗?休眠 4.3.10
【问题讨论】:
-
如果您将“p”分配给“new A()”,那么它显然是 A 的实例,由基本的 Java (与 JPA 无关)。如果“p”不是 A 的实例,那么它是什么类?
-
instanceof 返回一个实例类型,如果你创建了这个实例那么它应该返回 true,如果不是你那么你应该问是谁做的。
-
你是真的做
Parent p = new A();还是你从Hibernate的数据库中得到A? -
贴出你的真实代码,你这里描述的情况显然是不可能的。
-
这里有很多答案。但目前还不清楚问题是什么:)