我一直试图将一个实体添加到数据库中,该实体与另一个实体有OneTo许多关系,但当我插入该实体时,它说无法插入id,因为它是null。
我已经映射了这样的父子类:
@OneToMany(mappedBy = "directory", cascade = CascadeType.ALL)
private List<DirectoryRemarksEntity> remarks;
子实体:
@ManyToOne(fetch = FetchType.LAZY)
@JoinColumn(name = "DIRECTORY_ID")
@JsonIgnore
private DirectoryTableEntity directory;
我的json长这样:
{
"state": {
"id": 2,
"nameEn": "Dubai",
"code": "DXB",
"nameAr": "دبي"
},
"segment": {
"id": 5,
"name": "Government",
"alias": "Gov"
},
"contactType": {
"id": 5,
"name": "FAX"
},
"remarks": [
{
"remarkValueAR": "EN Remarks",
"remarkValueEN": "AR RemarksEN ",
"remarkType": {
"id": 4,
"name": "legacy_modifieddate"
}
}
],
"isTelSecret": 1,
"isPublishElectroniceMedia": 0,
"isTelPublishDa": 1,
"isPrintARA": 0,
"isPrintENG": 0,
"establishmentNameEn": "Establishment Name",
"establishmentNameAr": "",
"establishmentSubNameEn": "Subname",
"establishmentSubNameAr": "Arabicname",
"contactCountryCode": "92",
"contactNumber": "3042501110",
"streetAR": "",
"streetEN": "",
"houseNumber": "",
"flatNo": "",
"buildingAR": "",
"buildingEN": "",
"proffesionAR": "",
"proffesionEN": "",
"latitude": "",
"longitude": "",
"accountProductCode": "00",
"subSegment": "",
"companyNameAr": "",
"companyNameEn": "",
"email": "",
"url": "",
"ISUrl": "",
"ticketsFeesEN": "",
"ticketsFeesAR": "",
"timingsAR": "",
"timingsEN": "",
"streetEn": "SZR"
}
这是hibernate抛出的错误:
错误Msg=ORA-01400:无法将NULL插入(“DQISAPPS”。“目录\备注”。“目录\ ID”)
在甲骨文。jdbc。驾驶员t4cttiore11。processError(t4cttiore11.java:498)
这是我的Rest控制器:
@PostMapping("/")
public ResponseEntity<Response<DirectoryTableEntity>> save(@RequestBody DirectoryTableEntity directory){
return new ResponseEntity<>(
new Response<>(directoryService.save(directory), new Meta(SUCCESS_MESSAGE, HttpStatus.OK.value())),
HttpStatus.OK);
}
这是我的服务:
@Override
public DirectoryTableEntity save(DirectoryTableEntity directory) {
// TODO Auto-generated method stub
String user = authService.getUsername();
directory.setStatusId(1);
directory.setCreatedBy(user);
directory.setLastModifiedBy(user);
return directoryTableRepository.save(directory);
}
有人能告诉我这里缺少什么吗?
DirectoryRemarksEntity
和DirectoryTableEntity
之间的关系是双向的。在JPA/HiberNate
中,您必须显式地设置双方。
当从json创建DirectoryTableEntity
时,directory.get备注()
将具有DirectoryRemarksEntity
,但remark.getDirectory()
将为null
。
因此,更新您的服务方法以包括目录。GetComments()。forEach(备注)-
@Override
public DirectoryTableEntity save(DirectoryTableEntity directory) {
// TODO Auto-generated method stub
String user = authService.getUsername();
directory.setStatusId(1);
directory.setCreatedBy(user);
directory.setLastModifiedBy(user);
directory.getRemarks().forEach(remark -> remark.setDirectory(directory));
return directoryTableRepository.save(directory);
}
实体框架5.0首先使用现有数据库编写代码。使用电动工具对类进行逆向工程。一切都很好。数据库有两个表。一个父母和一个孩子的外键返回到父母ID。ID都是带有自动增量的int。我添加了许多父母记录,现在想将孩子记录添加到特定的父母。我能看到的唯一方法是通过在父母表中搜索名称或其他属性并返回ID来找到适当的父母ID。然后在添加孩子时在外键属性中使用该ID。我不想设置新父母,所以这是将孩子添加到现有父母的唯
我可能需要一些帮助,因为我被这些文件弄糊涂了: 我有一个JPA母公司: 和孩子: 如果我只是增加联系人,我希望JPA能够建立这种关系。 e、 g: 现在发生的是: 触点插入DB(良好) 使用providerX。联系人中的id。提供者列(良好) provider\u contact表中未显示任何关系条目 我知道我可以将联系人设置为提供者的属性<代码>providerX。联系人。添加(c)。。。回购。
问题内容: 我正在使用清除不需要的HTML标签(例如)中的一些文本 问题是,它取代例如用(这会导致麻烦的我,因为它不是“纯XML”)。 例如 产量 但我想 有没有简单的方法可以做到这一点?(即比转换回结果更简单。) 问题答案: 您可以配置Jsoup的转义模式:使用将为您提供无实体输出。 这是一个完整的代码段,可以接受作为输入,并使用进行清理:
若要添加一个新的实体,点击工具栏的 按钮,并点击画布的任意位置。你可以从浏览器的模型选项卡添加一个现有的实体,简单地从模型选项卡拖放实体到画布。 在画布中实体对象的弹出式菜单选项包括: 选项 描述 添加关联的对象 添加全部关联的实体到选择的实体。 剪切 从图表移除实体并放它在剪贴板。 复制 从图表复制实体到剪贴板。 粘贴 将剪贴板的内容贴到图表。 选择全部实体 在图表中选择全部实体。 删除 从图表
若要添加一个新的实体,点击工具栏的 按钮,并点击画布的任意位置。你可以从浏览器的模型选项卡添加一个现有的实体,简单地从模型选项卡拖放实体到画布。 如果图表符号设置为默认, 图标代表属性为一个主键。而 图标则代表属性为一个索引。 【注意】如果你右击属性,你可以选择添加、插入、删除、重命名属性及设置属性为主键。 在画布中实体对象的弹出式菜单选项包括: 选项 描述 设计实体 在实体设计器中编辑实体结构,
若要添加一个新的实体,点击工具栏的 按钮,并点击画布的任意位置。你可以从浏览器的模型选项卡添加一个现有的实体,简单地从模型选项卡拖放实体到画布。 在画布中实体对象的弹出式菜单选项包括: 选项 描述 添加关联的对象 添加全部关联的实体到选择的实体。 剪切 从图表移除实体并放它在剪贴板。 复制 从图表复制实体到剪贴板。 粘贴 将剪贴板的内容贴到图表。 选择全部实体 在图表中选择全部实体。 删除 从图表