Hibernate Envers не сохраняет внешний ключ в таблице аудитаJAVA

Программисты JAVA общаются здесь
Ответить
Anonymous
 Hibernate Envers не сохраняет внешний ключ в таблице аудита

Сообщение Anonymous »

Я использую Hibernate Envers для аудита отношений @OneToMany между двумя объектами: ParentEntity и ChildEntity.
Я не использую @ManyToOne на стороне ChildEntity. Вместо этого я сохраняю внешний ключ непосредственно как целочисленный родительский идентификатор.
В основной таблице child_entity значение родительского_id сохраняется правильно.
Однако в таблице аудита (

Код: Выделить всё

child_entity_aud
), это поле всегда имеет значение NULL, даже если оно помечено как @Audited.
Использование @ManyToOne в моем случае не вариант — я хочу сохранить только необработанный идентификатор без присоединения или загрузки полной родительской сущности.
Я также пробовал @AuditJoinTable, но, насколько я понимаю, это применимо только к коллекциям и «многие-ко-многим» отношения.
Как я могу заставить Envers сохранять внешний ключ (

Код: Выделить всё

parentId
) в таблицу аудита без использования @ManyToOne?

Код: Выделить всё

@Entity
@Audited
@Table(name = "parent_entity")
public class ParentEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;

@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "parent_id") // FK in child
private List children = new ArrayList();
}

@Entity
@Audited
@Table(name = "child_entity")
public class ChildEntity {

@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;

// Just a raw FK, no @ManyToOne
@Column(name = "parent_id")
@Audited
private Integer parentId;

private String data;
}
Наблюдаемое поведение: Как я могу заставить это работать без введения ассоциации @ManyToOne?

Подробнее здесь: https://stackoverflow.com/questions/798 ... udit-table
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»