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

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

Сообщение Anonymous »

Я использую Hibernate Envers для аудита отношений @OneToMany между двумя объектами: ParentEntity и ChildEntity.
Я не использую @ManyToOne на стороне ChildEntity. Вместо этого я сохраняю внешний ключ непосредственно как целочисленный родительский идентификатор.
В основной таблице child_entity значение родительского_ид сохраняется правильно.
Однако в таблице аудита (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;
}
Наблюдаемое поведение:
child_entity.parent_id сохраняется правильно
child_entity_aud.parent_id всегда имеет значение null
Как я могу заставить это работать без введения ассоциации @ManyToOne?>

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

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

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

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

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

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