Hibernate envers 5.4.x could not resolve property

Viewed 434

I use hibernate envers for auditing. I have simple User entity:

 @Entity
    @Table(name = "user")
    @Audited
    @AuditTable(value = "userHistory")
    public class User implements Serializable {
        
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Id
        private Long id;
        private String username;
        private String password;
        
        @OneToMany(mappedBy="user")
        private Collection<Test> tests;

    

        //getter and setter
    }

entity Test :

 @Entity
    @Table(name = "test")
    @Audited
    @AuditTable(value = "testHistory")
    public class Test {
        @GeneratedValue(strategy = GenerationType.AUTO)
        @Id
    private Long id;
        private String description; 
        @ManyToOne(fetch = FetchType.LAZY, optional = false)
        @JoinColumn(name = "useriduser")
        private User user;
        
        
        public Test() {
            super();
        }
        
//getter and setter
        
        
    }

Log: org.hibernate.QueryException: could not resolve property: user of

 Exception in thread "main" java.lang.IllegalArgumentException: org.hibernate.QueryException: could not resolve property: user of: name.luoyong.hibernate.basic.entity.Test_AUD [select e__ from name.luoyong.hibernate.basic.entity.Test_AUD e__ where e__.user.id = :_p0 order by e__.originalId.REV.id asc]
        at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:138)
        at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:181)
        at org.hibernate.internal.ExceptionConverterImpl.convert(ExceptionConverterImpl.java:188)
        at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:725)
        at org.hibernate.internal.AbstractSharedSessionContract.createQuery(AbstractSharedSessionContract.java:113)
        at org.hibernate.envers.internal.tools.query.QueryBuilder.toQuery(QueryBuilder.java:323)
        at org.hibernate.envers.query.internal.impl.AbstractAuditQuery.buildQuery(AbstractAuditQuery.java:98)
        at org.hibernate.envers.query.internal.impl.AbstractAuditQuery.buildAndExecuteQuery(AbstractAuditQuery.java:104)
        at org.hibernate.envers.query.internal.impl.RevisionsOfEntityQuery.getQueryResults(RevisionsOfEntityQuery.java:173)
        at org.hibernate.envers.query.internal.impl.RevisionsOfEntityQuery.list(RevisionsOfEntityQuery.java:136)
        at org.hibernate.envers.query.internal.impl.AbstractAuditQuery.getResultList(AbstractAuditQuery.java:112)
        at name.luoyong.hibernate.envers.App.reader(App.java:65)
        at name.luoyong.hibernate.envers.App.main(App.java:24)
    Caused by: org.hibernate.QueryException: could not resolve property: user of: name.luoyong.hibernate.basic.entity.Test_AUD [select e__ from name.luoyong.hibernate.basic.entity.Test_AUD e__ where e__.user.id = :_p0 order by e__.originalId.REV.id asc]

I am trying to find all revisions with the following method. I use AuditorReader to query for revisions

 AuditReader reader = AuditReaderFactory.get(entityManager);
            AuditQuery auditQuery=reader.createQuery().forRevisionsOfEntity(Test.class, true, true);
            auditQuery.add(AuditEntity.property("user.id").eq(1L)).getResultList().forEach(e->System.out.println(e.toString()));
0 Answers
Related