jpa删除数据后数据库无修改_java – JPA不删除数据库行

news/2024/7/5 5:07:20

我正面临着JPA的删除问题,这是我的代码:

public deleteLine(int idLine) {

Line line = em.find(Line.class,idLine);

Header header = line.getHeader();

this.deleteLine(header,line);

}

public boolean deleteLine(Header header, Line line) {

try {

line.setIdArticle(null);

line.setDetail(DELETED_TAG);

line.setQuantity(0.0f);

em.merge(line);

header.getLineCollection().remove(line);

em.remove(line);

em.flush();

}

catch (Exception ex) {

LOG.log(Level.SEVERE, null, ex);

}

return true;

}

当我调用deleteLine()时,我以一个数据库行结束,idArticle为null,详细信息等于DELETED_TAG常量,数量等于0.但是行仍然存在,尽管em.remove.

我试图在删除之前添加一个line.setHeader(null),但是我得到一个ConstraintViolationException,因为header字段不能为null.

显然我做错了什么,但我无法弄清楚是什么.

有实体代码:

public class Header implements Serializable {

[...]

@OneToMany(cascade = CascadeType.ALL, mappedBy = "header")

private Collection lineCollection;

[...]

}

public class Line implements Serializable {

[...]

@JoinColumn(name = "header", referencedColumnName = "header")

@ManyToOne(optional = false)

private Header header;

[...]

}

我已经完成了通过JPQL(DELETE FROM Linea WHERE idLinea =?)删除行的测试,并且它有效地删除了该行.但是,当JPA执行提交时,由于JPA执行了INSERT,该行重新出现.

有没有办法发现原因?显然,有一个生成插入的实体,但我正在从标题中删除该行,那么我该怎么做才能找出触发插入的内容?


http://lihuaxi.xjx100.cn/news/283570.html

相关文章

漫画:什么是LRU算法?

本期封面作者:A17————— 两个月前 —————用户信息当然是存在数据库里。但是由于我们对用户系统的性能要求比较高,显然不能每一次请求都去查询数据库。所以,小灰在内存中创建了一个哈希表作为缓存,每次查找一个用户的时候…

Windows Live Messenger  正式版已经发布

Windows Live Messenger 正式版已经发布!这是新一代的 Messenger。它拥有全新的名字,可以免费下载。并且除了延续使用原 Messenger 的全部功能外,它还提供了几种出色的全新交流方式,实现与朋友的即时共享和交流。转载于:https://www.cnblogs.…

使用 Vagrant 在不同的操作系统上测试你的脚本

Vagrant 可以帮助你在你的电脑上运行其他操作系统,这意味着你可以构建、测试、疯狂折腾而不毁坏你的系统。 我使用 Vagrant 已经很长时间了。我使用几种 DevOps 工具,把它们全安装在一个系统上会搞得很乱。Vagrant 可以让你在不破坏系统的情况下随意折腾…

Contiki 2.7 Makefile 文件(一)

一、主控Makefile 这里以hello-world例子为主线,从其工程Makefile开始,解析整个build过程。 (1)CONTIKI_PROJECT hello-world 定义变量CONTIKI_PROJECT为 hello-world (2)all: $(CONTIKI_PROJECT) all是第一个目标,也就是默认目标&#xf…

mqtt 传文件断开连接的原因_mqtt 发送消息断开链接

出现如下错误o.s.i.mqtt.outbound.MqttPahoMessageHandler|Lost connection; will attempt reconnect on next request我的配置Beanpublic MqttPahoClientFactory mqttClientFactory1() {DefaultMqttPahoClientFactory factory new DefaultMqttPahoClientFactory();MqttConnec…

C++开源跨平台类库集

在如下的库支持下,开发的系统可以很方便移植到当前大部分平台上运行而无需改动,只需在对应的平台下 用你喜欢的编译器 重新编译即可 经典的C库 STLport-------SGI STL库的跨平台可移植版本,在以前有些编译器离符合 标准比较远的情况…

链式比较、奇怪的字母、有趣的import...Python冷知识(六)

本文转载自Python编程时光(ID:Python-Time)冷知识系列,已经更新至第六篇。谈谈 Python 那些不为人知的冷知识(一)谈谈 Python 那些不为人知的冷知识(二)谈谈 Python 那些不为人知的冷知识&#…

活久见!技术面试官竟然给我出了一个脑筋急转弯,还问我王者荣耀什么段位?...

作者 l Hollis来源 l Hollis(ID:hollischuang)我叫小志,是一个毕业3年的Java后端开发,在一家传统银行的研发中心负责主要的研发岗位。虽然这份工作并不是很忙,给我的薪水也算不错,但是用到的技术…