有以下两个类,通过多对一注解相关:
@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/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.
有什么问题?
非常感谢!李维斯