spring - 一对多关系抛出(“permission_group_id”列中的空值违反非空约束)
问题描述
父.java:
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "pgroup_generator")
@SequenceGenerator(name="pgroup_generator", sequenceName = "pg_seq", allocationSize=50)
@Column(
name = "group_id",
unique = true,
updatable = false,
nullable = false
)
private Long id;
@Column(name="group_name",unique = true)
private String groupName;
@OneToMany(targetEntity=PermissionsEntity.class, mappedBy = "permissionGroup", cascade=CascadeType.ALL, fetch = FetchType.LAZY)
private List<PermissionsEntity> permissions= new ArrayList<>();
public void setPermissions(List<PermissionsEntity> permissions) {
this.permissions = permissions;
for(PermissionsEntity p:permissions) {
p.setPermissionGroup(this);
}
}
子.java:
@ManyToOne(fetch = FetchType.LAZY, optional = false)
@JoinColumn(name="group_id", referencedColumnName = "group_id", insertable = false, updatable = false)
private PermissionGroupEntity permissionGroup;
这是错误日志:
org.postgresql.util.PSQLException: ERROR: null value in column "permission_group_id" violates not-null constraint
Detail: Failing row contains (11, null, 2020-11-02 10:52:34.849, null, 2020-11-02 10:52:34.849, Allow the user to create findings, create audit or workpaper findings, null, null, null, null, null, null).
解决方案
因为你有insertable = false
那个permissionGroup
,它没有被插入,让它为空。删除该设置以将其保留为默认值true
。
推荐阅读
- python - 试图抓取网页。下载的 html 代码与现场代码略有不同
- google-cloud-platform - 如何更改默认的 Google Cloud 用户名?
- javascript - 在 webView 中从 JavaScript 调用 Android 共享意图
- python-3.5 - Hashicorp vault hvac 客户端不读取秘密,总是打印“无”
- python - 我应该如何找到对应于抛物线的最大或最小 y_value 的 x_value?(在 Python 中)
- web-scraping - 如何使用 selenium 和 python 从下拉菜单中的所有情况下更快地从 Web 表单中抓取数据
- typo3 - 如何在 TYPO3 10x 中使用 .less 文件
- .htaccess - 使用 .htaccess 将路径字符串作为 GET 变量重定向到主页
- svg - 如何将 SVG 路径向右移动?
- git - 如何搜索丢失提交的代码?