Hibernate.Envers: @Audited at @ManyToOne выдает исключение - PullRequest
0 голосов
/ 16 августа 2010

существует два следующих класса, связанных аннотацией manytoone:

@Entity
public class Firma {
  @Id
  @GeneratedValue
  private int id;

  @OneToMany(mappedBy = "firma")
  private List<Mitarbeiter> mitarbeiter;

  //getter und setter methods
}

@Entity
public class Mitarbeiter {
  @Id
  @GeneratedValue
  private int id;

  @Audited()
  private String name;

  @ManyToOne
  @Audited(targetAuditMode=RelationTargetAuditMode.NOT_AUDITED)
  private Firma firma;

  //getter und setter methods
}

Если я удаляю @Audited (...) и затем сохраняю Mitarbeiter, все работает нормально.Но с @ Audited-Annotation генерируется следующее исключение:

java.lang.NoSuchMethodError: org.hibernate.persister.entity.EntityPersister.getIdentifier (Ljava / lang / Object; Lorg / hibernate / engine)/ SessionImplementor;) Ljava / IO / Сериализуемый;org.hibernate.envers.tools.Tools.getIdentifier (Tools.java:67) org.hibernate.envers.tools.Tools.entitiesEqual (Tools.java:50) org.hibernate.envers.entities.mapper.relation.ToOneIdMapper.mapToMapFromEntity (ToOneIdMapper.java:71) org.hibernate.envers.entities.mapper.MultiPropertyMapper.map (MultiPropertyMapper.java:86) org.hibernate.envers.synchronization.work.ModWorkUnit. (ModWavahnit. or.envers.event.AuditEventListener.onPostUpdate (AuditEventListener.java:165) org.hibernate.action.EntityUpdateAction.postUpdate (EntityUpdateAction.java:200) org.hibernate.action..engine.ActionQueue.execute (ActionQueue.java:279) org.hibernate.engine.ActionQueue.executeActions (ActionQueue.java:263) org.hibernate.engine.ActionQueue.executeActions (ActionQueue.java:168) org.hiber.def.AbstractFlushingEventListener.performExecutions (AbstractFlushingEventListener.java:321) org.hibernate.event.def.DefaultFlushEventListener.onFlush (DefaultFlushEventListener.java:50) org.hibernate.impl.SessionImpl.flush (SessionImpl.java:1027) org.hibernate.impl.SessionImpl.managedFlush (SessionImpl.java:365) org.hibernateJtransaction.commit (JDBCTransaction.java:137) org.hibernate.ejb.TransactionImpl.commit (TransactionImpl.java:54)

В чем проблема? `

Большое спасибо!Levis

1 Ответ

1 голос
/ 16 августа 2010

Убедитесь, что файлы jar, используемые во время выполнения, имеют ту же версию, что и файлы jar, использованные для компиляции кода.

Если это не решит вашу проблему (и, скорее всего, не решит), поместите jar-файлы, поставляемые с Hibernate Tools, в ваш путь к классам вместо тех, которые вы используете прямо сейчас. Технически, это может произойти, если один из используемых вами jar-файлов содержит классы, которые были скомпилированы с использованием определенной версии другого jar-файла, который отличается от того, который у вас есть в вашем classpath.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...