每个子类的表与重复的列

时间:2012-07-26 15:32:35

标签: hibernate

在我的应用程序中,我有这个层次结构:

  • LastUser
  • LastUserUpdatedTimestamp

BaseObject是一个@MappedSuperclass,由Transaction扩展,后者又由SubTransaction扩展。

Transaction对象定义如下:

@Entity
@Table(name = "T_TRANSACTION")
@Inheritance(strategy = InheritanceType.JOINED)
public class Transaction extends BaseObject implements Serializable {
    //etc
}

SubTransaction看起来像这样:

// Primary key join columns
public class SubTransaction extends Transaction implements Serializable {

Transaction和SubTransaction映射到每个都有审计列的表(是的,相同的名称)

  • LastUser
  • LastUpdatedTimestamp

当我尝试持久化SubTransaction时,会抛出有关Transaction的审计列为空的异常。

有人可以提出任何建议吗?

1 个答案:

答案 0 :(得分:0)

据我所知,你有一个类似

的表结构
   BaseObjectTable
  /               \
 \/               \/
Transaction     Subtransaction

但映射表明他

BaseObjectTable
  /
 \/
Transaction
  /
 \/
Subtransaction

要实现第一个,你可以尝试在Subtransaction

上设置@Extends(BaseObject)