- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我已经尝试解决这个问题有一段时间了,但我似乎找不到任何有类似问题的人。
我有一个包含多个 LogEntries 的 Person。当我删除这个人时,我仍然想保持日志条目完整。
在 Person.java 中:
@OneToMany(mappedBy = "person", cascade = CascadeType.DETACH)
private List<LogEntry> logEntries;
在 LogEntry.java 中:
@ManyToOne(cascade = CascadeType.DETACH)
@JsonIgnore
private Person person;
有可能做到这一点吗?我收到一个关于外键的持久性错误,这是可以理解的,因为不再有任何关系。但我想知道这是否可能?
tl;博士
我想删除此人,但保留日志条目,但出现持久性错误。
感谢任何帮助。
最佳答案
我认为你错了:
Detached entity objects are objects in a special state in which they are not managed by any EntityManager but still represent objects in the database.
...
...
Marking a reference field with CascadeType.DETACH (or CascadeType.ALL, which includes DETACH) indicates that detach operations should be cascaded automatically to entity objects that are referenced by that field
因此,分离是从实体管理器卸载对象。如果您不想从其 logEntries 中分离(删除链接)一个 Person,您必须手动执行此操作。
为此,您可以使用 JPQL Update Query在删除 Person 元素之前。举例来说(警告,未测试!!):
Query query = em.createQuery(
"UPDATE LogEntry log SET log.person = null where log.person = :person");
query.setParameter("person", person);
int updateCount = query.executeUpdate();
em.remove(person);
注释:
@PrePersist
和 @PostPersist
带注释的方法)@PreRemove
实体来清除LogEntity关系。关于java - Play 框架 2.1.x CascadeType.DETACH,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25618829/
谷歌搜索后,此选项的精度极低, 具体来说,我想知道什么是“分离键”,什么是“分离容器的键序列”, 任何提示都会很棒, 谢谢 最佳答案 你好吗?正如这里所解释的:Docker Attach Docume
实体类: public class CustomerSurvey implements Serializable { @Id @GeneratedValue(strategy=GenerationTy
我正在经历这个例子 - https://github.com/pytorch/examples/blob/master/dcgan/main.py我有一个基本问题。 fake = netG(noise
我正在使用 JQuery 1.5 和以下代码在单击按钮时分离带有特定类的 li 元素。我想知道的是,当再次单击该按钮时,如何将元素添加回页面? $("#remove").click(
clone() 与 detach() 对比 Torch 为了提高速度,向量或是矩阵的赋值是指向同一内存的,这不同于 Matlab。如果需要保存旧的tensor即需要开辟新的存储地址而不是引用,可以
import 'package:flutter/material.dart'; void main() => runApp(MyApp()); class MyApp extends Stateles
我已经分离了一个 div,并希望在单击按钮时重新附加它。 代码如下: $('#wrapper').detach(); $("#open_menu").click(function(){ ATT
加载页面中的所有脚本后,我可以安全地调用 $('script').detach(); 从 DOM 中删除脚本吗? 注意:它相当于 Array.from(document.getElementsByTa
我正在尝试修改旧版 Delphi 5 应用程序,以便可以从其图标/通过资源管理器或从控制台(命令行)启动它。当它从控制台启动时,我希望程序将自身与控制台进程分离,以便控制台可以继续执行其他指令,而无需
我正在使用 jQuery 1.3.2,目前我还不能指望升级。考虑一下在 1.4.2 中运行的代码: var some_elem = $('#some_element'); var other_elem
我有这样的东西: //html Action 1 Action 1 Action 1 ...
void helloFiber(boost::fibers::future &f) { cout pm; boost::fibers::future ft = pm.get_futu
我正在尝试使用“ref”属性从树中删除元素
对于Decorator设计模式,GoF明确指出: With decorators, responsibilities can be added and removed at run-time simp
我有一个函数 f,我想在一个单独的进程中生成它,该进程的生命周期应该独立于其父进程。执行此操作的最佳方法是什么? 我还没有找到一种使用 multiprocessing.Process(target=f
在我正在处理的这个模块中,我有一个监听窗口中的“调整大小”事件的监听器。每次运行模块时,我都需要检查是否已经有一个监听器注册到该事件并将其分离,以避免不必要的行为、内存泄漏等。 到目前为止一切顺利,但
我在我认为是我的分支的地方做了几十次提交,然后检查了另一个分支。 愿意回到我最初的分支,我没有找到我更新的代码。在控制台查看我的历史记录后,我了解到我在一个独立的分支机构工作...... 是否有可能以
在 Laravel 文档中,我发现 detach() 方法可以分离多对多关系中的所有对象。 Laravel 中的 detach() 方法也可以应用于一对多关系吗?如果没有,在这种情况下如何分离所有 n
我有: class _PageState extends State with WidgetsBindingObserver { @override void initState() {
我的应用程序使用一个在应用程序生命周期中存在的上下文实例。我使用 Entity Framework 来读取和写入所有数据到数据库。添加对象后,我希望它们被垃圾收集器清理,这样它们就不会保留在内存中。我
我是一名优秀的程序员,十分优秀!