0

私のアプリケーションでは、次の階層があります。

  • 最後のユーザー
  • 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 は、それぞれが監査列を持つテーブルにマップされます (はい、同じ名前です)

  • 最後のユーザー
  • LastUpdatedTimestamp

SubTransaction を永続化しようとすると、トランザクションの監査列が null であるという例外がスローされます。

誰でも提案できますか?

4

1 に答える 1

0

私が理解しているように、あなたは次のようなテーブル構造を持っています

   BaseObjectTable
  /               \
 \/               \/
Transaction     Subtransaction

しかし、マッピングは彼を示唆しています

BaseObjectTable
  /
 \/
Transaction
  /
 \/
Subtransaction

@Extends(BaseObject)サブトランザクションに設定しようとすることができる最初のものを達成するために

于 2012-07-27T06:39:51.270 に答える