首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JoinTable丢失了

JoinTable丢失了
EN

Stack Overflow用户
提问于 2010-11-10 19:21:38
回答 1查看 188关注 0票数 3

我有以下两个类:

代码语言:javascript
复制
@Entity
class A {
  @Id
  private aId;
  @ManyToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
  @JoinTable(name = "AB", joinColumns = @JoinColumn(name = "aId", referencedColumnName = "aId"), inverseJoinColumns = @JoinColumn(name = "bId", referencedColumnName = "bId"))
  private Set<B> bSet;
}

@Entity
class B {
   @Id
   private bId;
}

我从一个数据库加载完整的对象结构,然后在第二个数据库上输入一个新的事务,以再次持久化该结构。但是,"AB“表是空的。这非常奇怪,因为"B“是持久化的,尽管我只显式地持久化了"A”。我已经检查过A-objects包含B的非空集,所以这不是问题。

这给我留下了一个结论,Hibernate认为"AB"-table应该存在,因为"A“和"B”都已经有了它们的主键。有什么办法可以让Hibernate在第二个数据库中持久化连接表吗?

EN

回答 1

Stack Overflow用户

发布于 2012-01-06 05:34:22

我猜这是因为你正在使用代理持久化,如果你用新操作符创建A和B的实例,然后调用object.That,连接表记录将被创建,你正在使用从entitymanager获得的对象(这些是代理对象),所以你必须合并对象,entitymanager将创建这个对象的新代理。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4143919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档