- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有两个实体:
我明白这个问题。 FK(名称:LOGGEMPLOYEEMODEL_ID)位于“loggingmodel”表中。
在为父表“employeedetails”保存新记录时,子表也应该更新。但我收到错误消息:“org.h2.jdbc.JdbcSQLIntegrityConstraintViolationException:列“LOGGINGEMPLOYEEMODEL_ID”不允许为空;SQL 语句:
插入 LoggingModel (infotext, loggingEmployeeModel_id, title, id) 值 (?, ?, ?, ?) [23502-199]"
我明白了,对于子表的 FK,employeedetails 的新 ID 是未知的。 (如果它从 Postman 注入(inject)中取出“employeeModelLogging”部分,那么我不会收到约束错误,所以它应该是 loggingModel 部分)
我如何在 JPA - Hibernate 中解决这个问题?
父端:一对多:
@Entity
@AllArgsConstructor
@Getter
@Setter
@NoArgsConstructor
@Table(name="employeedetails", schema="public")
public class EmployeeModel implements Serializable {
private static final long serialVersionUID = -3009157732242241606L;
@Id
@Column(name="id")
@SequenceGenerator(initialValue=1, name="employeedetails_seq", sequenceName="employeedetails_sequence", allocationSize=1)
@GeneratedValue(strategy=GenerationType.SEQUENCE, generator="employeedetails_seq")
private Long id;
...
@OneToMany(mappedBy = "loggingEmployeeModel",fetch=FetchType.LAZY , cascade = CascadeType.ALL)
private List<LoggingModel> employeeModelLogging;
...
}
子端:多对一:
@Getter
@Setter
@ToString
@AllArgsConstructor
@NoArgsConstructor
@Entity
public class LoggingModel {
@Id
@Column(name = "id")
@SequenceGenerator(initialValue = 1, name = "log_seq", sequenceName = "log_sequence", allocationSize=1)
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "log_seq")
private Long id;
@Column()
private String title;
@Column()
private String infotext;
@ManyToOne (cascade = CascadeType.ALL)
@JoinColumn(name = "loggingEmployeeModel_id", referencedColumnName = "id", nullable = false)
private EmployeeModel loggingEmployeeModel;
}
创建员工服务实现:
@Override
public ResponseEntity<Object> createEmployee(EmployeeModel employeeModelToCreate) {
if (employeeRepository.findByEmployeeName(employeeModelToCreate.getEmployeeName()).isEmpty()) {
employeeModelToCreate.setCreatedDateTime(LocalDateTime.now());
employeeModelToCreate.setModifiedDateTime(LocalDateTime.now());
Long unitId = employeeModelToCreate.getUnit().getId();
Unit unit = em.find(Unit.class, unitId);
employeeModelToCreate.setUnit(em.getReference(Unit.class, unitId)); // Alternative 2
EmployeeModel savedEmployeeModel = employeeRepository.save(employeeModelToCreate);
if (employeeRepository.findById(savedEmployeeModel .getId()).isPresent())
return ResponseEntity.ok("User Created Successfully");
else
return ResponseEntity.unprocessableEntity().body("Failed Creating User as Specified");
} else {
return ResponseEntity.unprocessableEntity().body("msg: Employee with this employee name: " + employeeModelToCreate.getEmployeeName() + ", already exist in DB!");
}
}
这就是我用 Postman 注入(inject)的内容:
{
"employeeName": "Nico",
"employeeCode": "ECN0004",
"designation": "ZZZZZ",
"address": {
"doorNumber": "37",
"street": "Laakse Laan",
"city": "Zutphen"
},
"department": {
"deptName": "Nieuwegein"
},
"employeeModelLogging":[
{
"title": "Dit is de titel - nieuw opmerking",
"infotext": "Dit is de infotext "
},
{
"title": "Dit is de titel van de 2e opmerking ",
"infotext": "Dit is de infotext van de 2e opmerking"
}
],
"unit": {
"id": 3
},
"roles": [
{
"id": 1,
"name":"Admin",
"description": "Administrator"
},
{
"id": 2,
"name":"Guest",
"description": "Gast"
}
]
}
有人可以提出想法/提示我做错了什么吗?
最佳答案
我认为模型类是从 JSON 直接映射到您的实体的,对吗?如果是这样,您将遇到仅在一侧设置的双向关系。 unmarshalling
从 JSON 创建新 LoggingModel
实例,并将它们放入一个列表中。然后在创建的 EmployeeModel
上设置该列表实例。 EmployeeModel
实例现在可以引用它的所有 LoggingModel
实例。仍然缺少的是 LoggingModel
中的引用EmployeeModel
的实例实例。 JSON unmarshalling
没有设置它,因为它根本不知道它应该。
一个快速的解决方案是自己修复这些引用。快速 for-each 语句就足够了:
employeeModel.getEmployeeModelLogging().forEach(lm -> lm.setLoggingEmployeeModel(employeeModel);
关于relational-database - 错误 OneTOMany/ManyToOne 映射 : null at time of saving parent - child table,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69217655/
我正在从tangowithdjango学习django 。我试图理解 populate_rango.py 的代码。代码是: import os os.environ.setdefault('DJANG
我试图理解Rserve参数--save,-no-save和--vanilla之间的区别。我在文档或任何论坛中都没有看到任何描述这些效果的内容。有谁确切地知道这些是做什么的? 在OSX中,我需要指定其中
我正在使用 CoreData 制作一个基于文档的应用程序。我可以创建一个新文档,编辑该文档,然后保存它。文件已创建并可以打开。打开后,数据会正确加载。但是,一旦进行了初始保存,所有后续保存都不会执行任
下面提出了类似的问题 How to save complete web page 但目前还没有答案。预期的结果是得到很多文件,一些文件来存储图像等。 我使用了以下内容,它会弹出一个窗口说保存文件 va
我们一直在测试一种不同的保存方式。然而,结果并不像我们预期的那样。我们有创建调查的方法,每个调查有多个问题。我们测试了几个案例,它们都以相同的方式提交查询。 @Transactional class
我想了解JAP Repotitoty的详细信息。我创建了一个服务类、实体类和存储库类,如下所示(用 kotlin 编写)并执行了 ItemService#update 方法。 执行 item2Repo
我正在开发我的第一个 Firefox 扩展。我正在尝试将数据保存在浏览器的本地存储中(使用 Window.localStorage 很容易,但我正在关注 official recommandation
这让我很郁闷。我是 C Sharp 的新手,因此需要一些帮助。我的保存/另存为完全是胡说八道。 真的有两个问题: 如何在不弹出保存对话框的情况下保存对现有文件的更改?如果我单击“保存”,它会弹出一个对
我有一个代码可以将 XML 文件保存到我的目录中。它在我的本地主机和我的共享主机中实际上就像一个魅力,但它在我的 Linux VPS 中不起作用。 我总是遇到这个错误: 警告:DOMDocument:
有没有办法在 django 管理站点中同时“另存为”和“保存并添加另一个”? 最佳答案 我不认为按钮引用的 URL 有任何神奇之处,因此您可以通过简单地覆盖每个 http://docs.djangop
创建 playramework 的模型时,我们可以使用 save() 或 _save() 方法。为什么这两种方法在框架中都可用,原因是什么? (在这种情况下,他们做同样的事情 - 将对象保存到数据库)
我见过两个都调用 $save 的代码和 save到 $resource 的 Angular 。 有什么区别,你什么时候使用? 最佳答案 最佳解释===例子 : // by writing '{ id:
根据save bang your head, active record will drive you mad ,在特殊情况下我们应该避免使用 save! 和 rescue 习惯用法。鉴于此,假设模型
我的菜单栏中有两个按钮,其中包含“保存”和“另存为”按钮。但是,我目前拥有它们相同的代码,并且它会按当前方式保存,并提示用户要保存在哪里。我希望保存按钮仅保存而不提示对话框,除非文件尚不存在。 我尝试
我知道 models.Model 和 forms.ModelForm 都包含您可以覆盖的 .save() 方法。我的问题是它们如何以及何时用于保存对象以及以什么顺序。 最佳答案 ModelForm.s
我一直在尝试使用 freeze_graph函数来获取模型+权重/偏差,但在这个过程中,我发现我的初始网络似乎没有任何变量,尽管能够正确分类图像。我的代码如下: #!/usr/bin/python im
尝试使用 gTTS 模块将文本转换为语音并另存为 wav 文件。 我的代码: import gTTS text = "This is my text in the saving folder" tts
我有一个包含大约 50 个字段和两个提交按钮的表单,“保存”和“保存并提交”。如果用户单击“保存”,则插入用户在表格中填写的值。当用户单击“保存并提交”按钮时,它应该更新或插入用户在表单中填写的所有字
我是 Django 新手。我想知道 django 中的 ModelForm 和 Model 如何协同工作?我的意思是 ModelForm.save() 如何自动保存与之关联的模型?它如何从 reque
我有亲子关系: @Entity @Table(name = "user") public final class User { @Id @GeneratedValue(strategy
我是一名优秀的程序员,十分优秀!