我正在尝试实现JPA实体之间的继承关系。
@Entity
@Table(name="SUB", schema="CNTRCT")
@DiscriminatorColumn(name="KIND", discriminatorType=DiscriminatorType.INTEGER)
public abstract class Subscription {
...
}
@Entity(name="Lifetime")
@DiscriminatorValue("2")
public class LifetimeSubscription
extends Subscription {
...
}
}
@Entity(name="Trial")
@DiscriminatorValue("3")
public class TrialSubscription
extends Subscription {
...
}
我需要做的是有一个额外的实体来捕捉剩下的部分,比如:
@Entity(name="WildCard")
@DiscriminatorValue(^[23])
public class WildSubscription
extends Subscription {
...
}
如果它不匹配LifetimeSubscription或TrialSubscription,那么它将匹配WildSubscription。如果您认为野生类是超类,如果没有更具体的实现适合,那么使用超类就更有意义了。
有人知道这么做的方法吗?
谢谢!
发布于 2012-01-02 10:19:50
JPA在这里只允许简单的值,原因是:判别器值被映射到SQL WHERE
。
SELECT ... WHERE kind = 1
如果您可以在这里指定正则表达式,那么它将不能传输到SQL,因为它不支持这种结构。
https://stackoverflow.com/questions/8612078
复制相似问题