Spring 一对多关系抛出(“权限”组“id”列中的null值违反NOTNULL约束)

Spring 一对多关系抛出(“权限”组“id”列中的null值违反NOTNULL约束),spring,spring-boot,hibernate,spring-data-jpa,hibernate-mapping,Spring,Spring Boot,Hibernate,Spring Data Jpa,Hibernate Mapping,Parent.java: @Id @GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "pgroup_generator") @SequenceGenerator(name="pgroup_generator", sequenceName = "pg_seq", allocationSize=50) @Column(

Parent.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);
        }
    }
@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).
    
这是错误日志:

@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);
        }
    }
@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).
    

因为您在该
permissionGroup
上有
insertable=false
,所以未插入该组,将其保留为null。删除该设置,将其保留为默认值
true

,并且
allocationSize=50
将是一个问题。让Postgres处理序列和ID,并在代码中使用
@GeneratedValue(strategy=GenerationType.IDENTITY)
。尝试使用IDENTITY generator,但仍然抛出相同的错误更改对我不起作用,仍然抛出相同的错误。