0
我有一個現有的TransactionLogs表,它是指向External或InternalType的鏈接。對應於所述現金調整&遊戲交易中的ID被存儲在稱爲單塔事務ID和稱爲一個單獨的列類型指示表被它鏈接到單表繼承查詢
由於現有的表的性質的哪個,我映射它在一個單一的表繼承:
@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;
}
這些兩個子類的具有它們的子類具有定義descriminator值
..
與上面給出,T設置這裏是我需要獲得 內部和外部記錄的統一數據的實例。什麼是完成這個最好的方法?起初我認爲這將足以使用TransLog作爲查詢的根類(我使用jpa標準)。然而,我需要獲得TransId(它們在子類中定義並指向2個不相關的對象)。
謝謝。
感謝您的回覆,我嘗試在TransLog中創建一個getTransactionId方法,並在兩個子類中實現爲一個惰性init(獲取外部或內部的id),但是我得到一個java.lang.IllegalArgumentException:無法解析屬性[transactionId]反對路徑.. – geneqew