java - 如何从两个实体中删除 OneToMany 关系?
问题描述
我在两个不同的类 X 和 Y 中有相同的 OneToMany 关系,当我试图删除它时,出现了一个例外:javax.persistence.EntityNotFoundException: Unable to find with id... <entity>
我还有一个 XY 类,它有两个 ManyToOne 关系,它嵌入了由 X 的 id 和 Y 类的 id 组成的 id。
我尝试过从 X 和 Y 类的列表中删除关系,合并它,然后从 XY 类中删除关系。我试过用 NotFoundAction.IGNORE 添加注释 @NotFound 并且它有效,但我不能使用它。另外我认为这并不能解决我的问题,这类似于解决方法。
//from X class:
@OneToMany(fetch = FetchType.EAGER, mappedBy = "x", cascade = CascadeType.ALL, orphanRemoval = true)
@Fetch(FetchMode.SUBSELECT)
private List<XY> xy;
//from Y class:
@OneToMany(fetch = FetchType.EAGER, mappedBy = "y", cascade = CascadeType.ALL, orphanRemoval = true)
@Fetch(FetchMode.SUBSELECT)
private List<XY> xy;
//from XY class:
@EmbeddedId
private XYid xyid = new XYid();
@MapsId("xId")
@ManyToOne(optional = false)
@JoinColumn(name = "x")
private X x;
@MapsId("yId")
@ManyToOne(optional = false)
@JoinColumn(name = "y")
private Y y;
//from XYid class:
private Integer xId;
private Integer yId;
解决方案
推荐阅读
- angular - Ionic - API Fetch 在真实设备上不起作用
- php - preg_match 不允许使用空格进行搜索
- r - R 防止 Lazyeval
- python - pyspark countApprox() 似乎与 count() 没有什么不同
- javascript - Angular 6-在同一组件的可变更改上动态更改 *ngFor 元素的 css 属性
- c# - 使用 EPPLus 将 CSV 或 XLSX 导入数据表
- python - Python:单击所有可能(更改)的菜单组合
- angular - ngif if 为 false 进入循环
- azureservicebus - 逻辑应用程序:具有并发控制的 ServiceBus 触发器导致 peek-lock 超时
- libpqxx - 将 libpqxx 库添加到 cmake