Я не могу найти правильный запрос для поиска записей аудита на основе строки в качестве первичного ключа. Однако всякая другая функциональность работает нормально с надлежащим аудитом данной таблицы.Hibernate Envers - как искать первичный ключ строки?
Вот код моего домена объекта:
private String userName;
private Date createDate;
private Date modifyDate;
@Id
@Column(name = "user_name", nullable = false, length = 10)
public String getUserName() {
return this.userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
А вот код для запроса я ищу, здесь PropertyValue это имя пользователя, с помощью которого я хочу найти:
AuditQuery query = reader.createQuery()
.forRevisionsOfEntity(targetClass, false, true)
.add(AuditEntity.revisionType().ge(RevisionType.ADD))
.add(AuditEntity.property("userName").eq(propertyValue))
.addOrder(AuditEntity.revisionNumber().desc());
return query.getResultList();
Я получил org.hibernate.QueryException: could not resolve property userName
исключение, выполнив этот запрос.
Есть ли другой способ иметь дело с строковыми первичными ключами?
Спасибо, теперь он работает. Я думал, что id применим только к целым id. –