在hibernate中映射双向非对称关系:OneToOne-ManyToOne

时间:2011-06-01 09:42:52

标签: hibernate one-to-one many-to-one bidirectional asymmetric

我有一个实体,它引用了代表某些属性当前状态的另一个实体,从而允许我跟踪所做更改的历史记录。为此,我定义了一个非对称的双向关系,OneToOne负责持久性,两个实体保持对另一个的引用,所以我可以从一方获得最新版本,另一方面得到该实体的所有版本。这是我的映射:

在A实体中:

@OneToOne(cascade = CascadeType.ALL)
@JoinColumn(name = "version_id", nullable = true, updatable = true)
private AVersion currentVersion;

并在AVersion实体中:

@ManyToOne
@JoinColumn(name = "A_id", insertable=false, updatable=false)
private A a;

现在,这允许我通过A一步保持这一点,但是对于AVersion表中的每一行,“A_id”列都是空的,所以我将无法检索某个实体的所有历史数据看着AVersion表。知道为什么这个专栏没有填写?

非常感谢!

P.S。我曾尝试使用Envers,但由于某些继承问题而无法使用。

0 个答案:

没有答案