Как использовать Аудит и трассировать в Hibernate Envers?
Я наконец заставляю свой код работать с hibrnate, но всегда есть печально новое. Ну, это мой код:
@Audited(withModifiedFlag=true)
@Entity
@SecondaryTable(name = "ParentChild")
public class ParentChild{
// @Audited(targetAuditMode = RelationTargetAuditMode.NOT_AUDITED)
@NotAudited
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "ParentChild", joinColumns = {
@JoinColumn(name = "parent_id", nullable = false, updatable = false) },
inverseJoinColumns = {
@JoinColumn(name = "child_id", nullable = false, updatable = false) })
protected Set<ParentChild> pc;
...
}
Когда я отключаю реверс с помощью @NotAudited, все работает отлично, но когда я пытаюсь включить его с помощью @Audited и многих параметров, я получаю исключение Oracle, из-за которого я не могу вставить нулевое значение в столбец обратной таблицы (это значение не является ноль). Я не понимаю, как это работает.
Мои заинтересованные таблицы: ParentChild(child_id, parent_id) и His_ParentChild (child_id, REV, parent_id, parent_MOD, REVTYPE, REVEND). PK(child_id, REV, parent_id).
Журнал SQL говорит, что он только пытается вставить значения child_id и REV в таблицу истории, и parent_id не может быть нулевым, потому что это тоже PK.
Кто-нибудь сталкивался с такой же проблемой раньше и / или знает, как ее решить?
Заранее спасибо.