私は、外部または内部型へのリンクであるTransactionLogの既存のテーブルを持っています。現金調整&ゲームトランザクションに対応するIDのは、シングルという列トランザクションIDと呼ばれる別の列に格納されているタイプ iは、テーブルにはそれがあるため、既存のテーブルの性質の単一テーブルの継承クエリ
にリンクされているかを示します単一テーブル継承の中にマッピングされた:
@Inheritance(strategy = InheritanceType.SINGLE_TABLE)
@DiscriminatorColumn(name = "TYPE", discriminatorType = DiscriminatorType.INTEGER)
public class TransLog implements Serializable {
@Id
@GeneratedValue
private Long id;
private Integer type;
// getters and setters
}
@Entity
public class InternalAdjustmentTransLog extends TransLog {
@ManyToOne
@JoinColumn(name = "TransID", nullable = false)
private InternalAdjustmentRecord internalAdjustmentRecord;
// getters and setters
}
@Entity
public class ExternalTransLog extends TransLog {
@ManyToOne
@JoinColumn(name = "TransID", nullable = false)
private ExternalAdjustmentRecord externalAdjustmentRecord;
}
これら2つのサブクラスの各々が定義descriminator値とそのサブクラスを有する..
上記の設定で、tはここでは、 の内部レコードと外部レコードの統一データを取得する必要がある場合があります。これを達成する最良の方法は何ですか?最初は私はそれがクエリのルートクラス(私はjpaの基準を使用しています)としてTransLogを使用するだけで十分だろうと思った。しかし、私はTransId(サブクラスで定義され、関係のない2つの異なるオブジェクトを指し示す)を取得する必要があります。
ありがとうございました。
私はTransLogでgetTransactionIdメソッドを作成しようとしましたが、両方のサブクラスでlazy init(外部または内部のIDを取得)として実装されましたが、java.lang.IllegalArgumentExceptionが発生します。 [transactionId]をパスに対して.. – geneqew