首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用带有“野生”DiscriminatorColumn的DiscriminatorValue的JPA实体继承

使用带有“野生”DiscriminatorColumn的DiscriminatorValue的JPA实体继承
EN

Stack Overflow用户
提问于 2011-12-23 03:50:48
回答 1查看 963关注 0票数 1

我正在尝试实现JPA实体之间的继承关系。

借用以下示例:http://openjpa.apache.org/builds/1.0.2/apache-openjpa-1.0.2/docs/manual/jpa_overview_mapping_discrim.html

代码语言:javascript
运行
复制
@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 {
    ...
}

我需要做的是有一个额外的实体来捕捉剩下的部分,比如:

代码语言:javascript
运行
复制
  @Entity(name="WildCard")
    @DiscriminatorValue(^[23])
    public class WildSubscription
        extends Subscription {
        ...
    }

如果它不匹配LifetimeSubscription或TrialSubscription,那么它将匹配WildSubscription。如果您认为野生类是超类,如果没有更具体的实现适合,那么使用超类就更有意义了。

有人知道这么做的方法吗?

谢谢!

EN

回答 1

Stack Overflow用户

发布于 2012-01-02 10:19:50

JPA在这里只允许简单的值,原因是:判别器值被映射到SQL WHERE

代码语言:javascript
运行
复制
SELECT ... WHERE kind = 1 

如果您可以在这里指定正则表达式,那么它将不能传输到SQL,因为它不支持这种结构。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8612078

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档