В этой ситуации важно понимать различие между столбцом и свойством.
Всякий раз, когда вы используете метод AuditProperty#property(String)
, вы просите Envers разрешить свойство объектной модели в сопоставлении столбца, поэтому вы хотите быть уверены, что в качестве фрагмента кода вы указали имя свойства, а не явное имя столбца.
Другими словами, я ожидаю, что ваш код будет выполнять следующие действия:
List personHistory = AuditReaderFactory.get(entityManager)
.createQuery()
.forRevisionsOfEntity(Student.class, false, true)
.traverseRelation("studentAddress", JoinType.LEFT, "address")
.up()
.add(AuditEntity.relatedId("studentAddress").eq(id))
.getResultList();
Я включил здесь вызов метода traverseRelation
, чтобы проиллюстрировать, как можно добавить дополнительные предикаты в отношении Address
при необходимости, включив те из них, которые предшествуют вызову up()
, так как они будут предикатами на основе таблицы соединений связанный с Address
.