java - 更新导致一对多表中的行被复制而不是仅仅被更新
问题描述
我正在尝试修改其他人编写的大量代码的一部分。我不知道我在做什么。
我有一个一对多的关系:代码表中的每个条目都可以在 code_property 表中有许多条目。我试图包含一个最小的示例(如下),但它是不可执行的,因为我没有这样做的技能。
我的问题是,每次更新代码表中的条目时,而不是仅更新 code_property 表中的关联条目,而是添加一个新集合(即使没有任何更改)。然后似乎有一些代码可以清除它。
mysql> select * from code_property where code_id=341965;
+----------+-----------------------+-------------------------------------+---------+
| id | name | property | code_id |
+----------+-----------------------+-------------------------------------+---------+
| 37187304 | incisivRunOptions | -access +rw | 341965 |
| 37187305 | designTabsActiveIndex | 1 | 341965 |
| 37187306 | incisivCompileOptions | -timescale 1ns/1ns -sysv -f files.f | 341965 |
| 37187307 | incisivRunOptions | -access +rw | 341965 |
| 37187308 | designTabsActiveIndex | 1 | 341965 |
| 37187309 | incisivCompileOptions | -timescale 1ns/1ns -sysv -f files.f | 341965 |
+----------+-----------------------+-------------------------------------+---------+
6 rows in set (0.00 sec)
我有两个问题:
我不能指望这只是更新 code_property 表而不创建新条目吗?(如果做得对的话。)
是否可以根据下面的代码查看问题所在?如果是这样,是什么?
@Entity @Table(name = "code") public class Code extends NamedDatedEntity implements Cloneable { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Min(value = 0) @Column(name = "id") private long id; @ManyToOne @JoinColumn(name = "user_id", referencedColumnName = "id") @JsonIgnore private User user; @OneToMany(mappedBy = "code", cascade = CascadeType.ALL, fetch = FetchType.LAZY) @MapKey(name = "name") private Map<String, CodeProperty> properties; @Entity @Table(name = "code_property") public class CodeProperty extends Property implements Cloneable{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Min(value = 0) @Column(name = "id") private long id; @ManyToOne @JsonIgnore private Code code;
解决方案
推荐阅读
- r - R webscraping一个缓慢/负担过重的(?)网站
- java - 如何在`OnClick`方法中使用`Arraylist`?
- continuous-integration - Bitbucket Pipeline:在 pdfLaTeX 之后存储 .pdf 工件
- python - 带有时区的时间戳到熊猫日期时间
- ms-access - 使用记录号将链接的 DBF 转换为 Access
- git - 特定日期的变更日志
- r - R - 根据 R 中其他列的值设置组值
- c# - 绑定 AuthenticationConfig 抛出异常
- c# - 使用实体框架在数据库中插入记录的问题
- java - 如何从 ArrayList 中删除一个项目
>