找到了两个相同集合的表示 - @ElementCollection

时间:2012-09-28 09:50:18

标签: java hibernate jpa-2.0

在这种情况下,我有两节课。一个嵌入Memo类:

@Entity
class Project {
  ...
  @Embed
  private Memo memo;
  ...
}

可嵌入的Memo类:

@Embeddable
public class Memo implements Serializable {

  @ElementCollection(fetch = FetchType.EAGER)
  @CollectionTable(name = "MEMO_LINES")
  @MapKeyColumn(name = "TITLE",nullable = false)
  @Column(name = "VAL",nullable = false)
  private Map<String, String> memoLines = new HashMap<String, String>();

}

当刷新Project的合并实例时,我收到错误消息:

Caused by: org.hibernate.HibernateException: Found two representations of same collection: Project.memo.memoLines

但是,不刷新实体时不会发生这种情况。

对于一个/多个关系,通常会出现此错误。但事实并非如此。这也不是Play!框架。只需定期Spring / JPA / Hibernate。

Spring 3.1.1.RELEASE,Hibernate 4.1.4.Final,JDK7u7,Linux 64。

以前有人这样吗?或者对错误究竟意味着什么的任何理性解释?

更新:它与flush()

有关

如果只有一次冲洗,它似乎有效。如果完成了中间刷新,那么它将抛出异常。一个混乱的解决方案是在第一个持久化数据的方法的出口处刷新。封闭方法调用持久检查threadlocal变量以查看它们是否应该刷新。

但是肯定有更好的方法......

0 个答案:

没有答案