jpa 保存实体的时候,自动执行删除操作?
在我保存实体的时候,即执行如下代码:
businessLogRepository.saveAndFlush(businessLog);
businessLogRepository.save(businessLog);
控制台会打印如下,三条语句,如下:
Hibernate: insert into log_business (login_ids, module_name, obj_id, object_type, operate_type, operate_url, time, users_name) values (?, ?, ?, ?, ?, ?, ?, ?)
Hibernate: delete from com_user_role where userid=?
Hibernate: delete from com_user_group where userid=?
整体效果如下图:
说明:如果我注掉保存方法(//businessLogRepository.save(businessLog)),即不执行保存,上面的三条sql都不会执行,给我的感觉,执行保存操作,是同时触发执行那三条语句一样。businessLog 实体,没有和 com_user 关联,实体代码如下:
问题1:为什么我执行保存的时候,会执行删除操作?怎样才能避免这种情况?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
花费了半天,总算是找到原因了。
原因是,我在调用保存方法之前,将另外的实体制为空,注释掉set(null) 方法就好了。不过奇怪的地方是,我保存BusinessLog实体,之前将ProcessInstance 实体 里面的Document 实体里面的 User实体 里面的 UserGroup 等set(null),为什么会删除User实体和UserGroup实体的关联关系? 这个我现在的知识水平还解释不了。