내가 감사에 대한 최대 절전 모드 Envers를 사용하여 복합 기본 키에 문제가 있습니다. 관련 속성을 기반으로 복합 기본 키가있는 많은 엔티티가 있습니다. 구조체는 다음과 같다 :최대 절전 모드 Envers 복합 기본 키 relatedId 요청
@Entity
@Audited
@Table(indexes = { @Index(columnList = "person_id"),
@Index(columnList = "document_id") })
public class PersonDocument implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@ManyToOne(optional = false, fetch = FetchType.EAGER)
private Document document;
@Id
@ManyToOne(optional = false, fetch = FetchType.EAGER)
private Person person;
관계는 주석 양방향 아니다. 기본 키는 감사 대상 테이블에서 올바르게 사용됩니다 (예 : envers의 문서).
는하지만 지금은 사람에게 관련된 모든 개정을 wan't. 와 다음
final AuditQuery query = AuditReaderFactory.get(entityManager)
.createQuery().forRevisionsOfEntity(PersonDocument.class, false, true)
.add(AuditEntity.relatedId("person").eq("12"))
.addOrder(AuditEntity.revisionNumber().desc());
을 그럼 난 오류 다음 얻을 :
This criterion can only be used on a property that is a relation to another property.
나는 문제없이 실행,하지만 난이 오류와 함께 다음이 아닌 복합 기본 키를 사용하는 경우. 누구에게 아이디어가 있습니까? 복합 엔트리 키에서 많은 엔티티에 대한 추가 기본 키로 데이터를 마이그레이션하는 것은 쉽지 않습니다.
나는 여기서 문제가 Envers 기본적으로이 오류로 실행하는 이유를 자세히입니다 @Id
주석 유형에 대한 관계를 등록하지 않는다는 것입니다 최대 절전 모드 버전 4.3.11
안부
여기에서이 토론과 관련된 JIRA를 추가했습니다 : https://hibernate.atlassian.net/browse/HHH-11748 – Naros
이 문제는 매우 간단합니다. 우리는 단지 비 식별자 속성 협회 및 구성 요소 속성을 연결하는 우리가 많은 같은 식별자에 두 번째 패스를 수행 할 수 있어야합니다. – Naros