【发布时间】:2020-06-08 20:21:24
【问题描述】:
我遇到了一个关于使用 Spring Hibernate 保存子对象的问题,希望您能给我一个提示。已经在 Stackoverflow 上搜索过,但我找不到任何适合我的用例的东西。
我有两个班级:
Class File {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.ALL)
@JoinColumn(name = "format_id")
private Format format;
}
Class Format {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "puid")
private String puid;
}
当我读取给定的 XML 文件时..
<files>
<file>
<name>abc</name>
<format>pdf</format>
</file>
<file>
<name>xyz</name>
<format>pdf</format>
</file>
</files>
.. 我创建类文件的对象并相应地格式化。最后我会打电话给fileRepository.savaAll();
我的问题是,现在我的 mySQL 数据库中有两种格式,尽管它们是相同的。有没有办法(可能通过注释)只为子元素创建新的数据库元素,如果不存在(puid 应该是唯一的)。
我想避免手动遍历所有文件,获取格式并检查它是否已经存在。
谢谢
【问题讨论】:
标签: java mysql hibernate spring-data-jpa