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