我的Entity
包含@Embeddable @ElementCollection
。当我试图坚持这个时,我会继续NonUniqueObjectException
。
@Entity
@Audited
public class Entity(){
private Long entityId;
@ElementCollection
private Set<MyEmbeddableCollection> collections = new HashSet<MyEmbeddableCollection>();
}
@Embeddable
public class myEmbeddableCollection(){
private String myId;
查看日志,我可以看到Envers未将myId
包含在envers表中。仅包括对实体的引用。
[HIST_Entity_collections#{revision_id=DefaultRevisionEntity(id = 3, revisionDate = 2013-sep-04 08:44:56), revisionTyp=ADD, entityId=1}]
我正在使用hibernate-envers 4.2.0.Final-redhat-1。 有没有人对此为何发生任何解决方案或解释?
答案 0 :(得分:1)
Hibernate中存在一个错误,请参阅here,这看起来像是您的问题。
这是一种解决方法:
public class FixedDefaultComponentSafeNamingStrategy extends DefaultComponentSafeNamingStrategy {
@Override
public String propertyToColumnName(String propertyName) {
return super.propertyToColumnName(propertyName.replace(".collection&&element.", "."));
}
}