当我尝试插入我的通知类型对象时,子实体也尝试插入

时间:2017-11-08 14:45:25

标签: java mysql hibernate jpa persistence

我有一个notificationTypes表,权限表。这些是通过桥表notification_types_permission的帮助链接的。 当所有实体都是新的时,它工作正常。 我的问题是,当我尝试插入具有现有权限的新notificationType时,该时间权限也会尝试插入新的权限。 我的表和实体结构如下。

var express = require('express');
var proxy = require('http-proxy-middleware');

var app = express();

app.use('/api', proxy({target: 'http://www.example.org', changeOrigin: true}));
app.listen(3000);

3 个答案:

答案 0 :(得分:1)

 @OneToMany( fetch = FetchType.EAGER)
 private List<RLPermissions> permissions;

如果不需要删除,更新和插入权限列表操作,请避免该关系的层叠属性。

答案 1 :(得分:0)

首先检索新的权限:

Permission p = permissionDao.getPermissionByName("SuperAdmin");

然后像这样添加:

notificationType.notificationTypesPermission.getPermissions().add(p)

答案 2 :(得分:0)

您已设置cascade = CascadeType.PERSIST,它将更新关系的多个方面。对NotificationTypes的任何更改都将更新相应的子实体

CascadeType.PERSIST:表示save()或persist()操作级联到相关实体。