Как использовать Аудит и трассировать в 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.

Кто-нибудь сталкивался с такой же проблемой раньше и / или знает, как ее решить?

Заранее спасибо.

0 ответов

Другие вопросы по тегам