Hibernate.Envers:@Audited at@manytone引发异常

Hibernate.Envers:@Audited at@manytone引发异常,hibernate,hibernate-envers,Hibernate,Hibernate Envers,有以下两个类,由多个注释关联: @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 @Gene

有以下两个类,由多个注释关联:

@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
}
@实体
公共类公司{
@身份证
@生成值
私有int-id;
@OneToMany(mappedBy=“firma”)
私人名单;
//getter和setter方法
}
@实体
公共级米塔贝特{
@身份证
@生成值
私有int-id;
@审计的()
私有字符串名称;
@许多酮
@已审核(targetAuditMode=关系targetAuditMode.未审核)
私人公司;
//getter和setter方法
}
如果我删除@Audited(…),然后保存一个Mitarbeiter,那么一切正常。但对于@Audited注释,会引发以下异常:

java.lang.NoSuchMethodError: org.hibernate.persister.entity.EntityPersister.getIdentifier(Ljava/lang/Object;Lorg/hibernate/engine/SessionImplementor;)Ljava/io/Serializable; 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.(ModWorkUnit.java:48) org.hibernate.envers.event.AuditEventListener.onPostUpdate(AuditEventListener.java:165) org.hibernate.action.EntityUpdateAction.postUpdate(EntityUpdateAction.java:200) org.hibernate.action.EntityUpdateAction.execute(EntityUpdateAction.java:179) org.hibernate.engine.ActionQueue.execute(ActionQueue.java:279) org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:263) org.hibernate.engine.ActionQueue.executeActions(ActionQueue.java:168) org.hibernate.event.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.hibernate.transaction.JDBCTransaction.commit(JDBCTransaction.java:137) org.hibernate.ejb.TransactionImpl.commit(TransactionImpl.java:54)

有什么问题吗`

非常感谢!
Levis检查运行时使用的JAR版本是否与编译代码时使用的JAR版本相同


如果它不能解决您的问题(很可能不会),请将Hibernate工具提供的JAR放在类路径中,而不是您现在正在使用的JAR。从技术上讲,如果您正在使用的某个jar包含使用另一个jar的特定版本编译的类,而该版本与您在类路径中的版本不同,则可能会发生这种情况。

谢谢您的回答!但如何做到这一点呢?哪些目录是相关的?