映射具有相似列结构的多个表

时间:2016-02-04 10:14:11

标签: java ejb

我有一个EJB,我想用于两个表。除了其中一个表中的一些附加列外,这两个表具有相同的列。如何使用javax.persistence.Table提供的@Table注释来完成它。我不希望使用@secondaryTable重新映射列,因为它们具有相同的名称。如果有任何方法可以实现这一点,请告诉我。

1 个答案:

答案 0 :(得分:0)

如果我理解得很好,你需要@MappedSuperclass注释。

我正在复制here中的示例。

  1. 创建将包含两个表都具有的公共列的超类:

    @MappedSuperclass
    public class GenericCommonTable {
    
        private String address;
    
        public Address getAddress() { ... }
        public void setAddress(Address addr) { ... }
    }
    
  2. 添加共享相同列的2个具体表:

    @Entity
    public class ConcreteTableOne extends GenericCommonTable {
    
       //your xtra columns here
    }
    
    @Entity
    public class ConcreteTableTwo extends GenericCommonTable {
    
       //your xtra-columns here
    }
    
  3. 希望有所帮助