2
我使用4.3.6休眠和envers。休眠envers一對一的關係,不是雙方審計
我有2個實體A和B,A是主實體和B是A
的子節它們是一對一的和雙向的。
雙方都有@Audited,還有當我保存A 3的情況發生了:
- 保存A,A和B都被修改。這兩個版本都會有一個新的版本號。
- 保存A,只有A被修改。 A將有一個新的修訂版。
- 保存A,只有B被修改。將有一個新的修訂版B.(我不想這)
我會一直保存實體A和級聯B來更新。如何在場景3中修改實體A?非常感謝!!!
的數據模式,我的模式是根據這個帖子的答案配置: 我的數據模式:
@Entity
@Audited
public class B implements Serializable {
....
//bi-directional one-to-one association to A
@MapsId
@OneToOne(mappedBy="b", cascade=CascadeType.ALL)
@JoinColumn(name="A_ID")
private A a;
}
@Entity
@Audited
@Table(name="A")
public class A implements Serializable {
...
//bi-directional one-to-one association to B
@OneToOne(cascade=CascadeType.ALL)
@PrimaryKeyJoinColumn
private B b;
當我保存堅持實體A(A沒有被修改和B被修改),
Hibernate generated sql
Hibernate: update A set ...
Hibernate: update B set ...
Hibernate: update C set ...
Hibernate: insert into RevEntity (CREATE_DATE, timestamp, username, id) values (?, ?, ?, ?)
Hibernate: insert into B_AUD ...
你可以通過編輯你的問題發佈你的實際數據模式嗎?任何相關的代碼將幫助SO成員更好地回答您的問題,謝謝。 – m4rtin 2014-09-02 09:48:08