【问题标题】:Remove many-to-one relationship - Hibernate [duplicate]删除多对一关系 - Hibernate [重复]
【发布时间】:2018-09-27 10:37:17
【问题描述】:

我有 2 个类,A 类,关系如下:

@OneToMany(mappedBy = "aaa", cascade = CascadeType.ALL, orphanRemoval = true)
private List<B> bbb = new ArrayList<B>();

和 B 类:

@ManyToOne
@JoinColumn(name = "aaa", nullable = false)
private A aaa;

但是,当我尝试删除 B 类实体时,什么也没有发生。我没有收到任何错误,也没有执行任何 SQL 语句。

B b = em.find(B.class, id)
em.remove(b);

我在这里明显做错了什么?

【问题讨论】:

  • 没有像“它没有从 B 表中删除”或“没有遵循与 A 的关系”那样发生?
  • 没有像“它没有从B表中删除”那样发生。表 A 没有关于 B 的任何信息。
  • 您在交易环境中吗?你提交删除吗?
  • 我正在开始一个事务,删除 b,提交并关闭实体管理器,没有别的
  • 你有什么例外吗?

标签: java hibernate jpa


【解决方案1】:

你可以使用它,

@OneToMany(mappedBy = "aaa",cascade = CascadeType.PERSIST, fetch = FetchType.EAGER, orphanRemoval=true)
private List<B> bbbb;

在这里,您在 bean 类中创建 List&lt;B&gt; 的 Setter 和 Getter 方法。

@ManyToOne(fetch=FetchType.EAGER,optional=false)
    @JoinColumn(name="aaa")
    private A aaa;

【讨论】:

  • 没有任何改变
  • 你能给我看一下错误日志吗?也许我会帮助你!
猜你喜欢
  • 1970-01-01
  • 2016-05-03
  • 2011-08-04
  • 1970-01-01
  • 2018-11-18
  • 1970-01-01
  • 1970-01-01
  • 2021-02-16
  • 1970-01-01
相关资源
最近更新 更多