首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >覆盖JPA MappedSuperClass泛型属性

覆盖JPA MappedSuperClass泛型属性
EN

Stack Overflow用户
提问于 2013-12-09 00:44:17
回答 1查看 1.3K关注 0票数 1

我有下面的场景,我需要子类能够指定在MappedSuperClass中找到的属性的实际类型。我使用hibernate作为提供者,我不介意使用hibernate特定的注释来解决这个问题。

代码语言:javascript
复制
@MappedSuperclass
abstract class BaseA{
   ....

   @OneToMany(mappedBy = "baseA")
   public Set<? extends BaseB> getBaseB(){
      .....
   }
}

@MappedSuperclass
abstract class BaseB{
   .....

   @ManyToOne(optional = false)
   @JoinColumn(name = "basea_id")
   public BaseA getBaseA(){
      .....
   }
}

@Entity
class BaseAImpl extends BaseA{
    public Set<BaseBImpl> getBaseB(){
      .....
   }
}

@Entity    
class BaseBImpl{

   public BaseAImpl getBaseA(){
      .....
   }
}
EN

回答 1

Stack Overflow用户

发布于 2013-12-09 01:11:37

在这种情况下,@AssociationOverride将帮助您。请参阅它的documentation (当然,它是一个JPA注释)。您可以将其与@AttributeOverrides注释结合使用,以覆盖基本类型。示例(取自示例):

代码语言:javascript
复制
@MappedSuperclass
public class Employee {
    ...
    @ManyToOne
    protected Address address;
    ...
}

@Entity 
@AssociationOverride(name="address", 
                         joinColumns=@JoinColumn(name="ADDR_ID"))
    // address field mapping overridden to ADDR_ID foreign key
public class PartTimeEmployee extends Employee {
    ...
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20455935

复制
相关文章

相似问题

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