@ManyToMany save the transient instance before flushing

  • 背景:jpa多对多,然后保存此实体报错,如标题。看日志,执行了insert users,然后执行insert sh_users_roles,没有insert roles的语句,根据报错,查找,原因为CascadeType.PERSIST级联操作关系设置问题。需要改为CascadeType.ALL。具体可查找关于此属性的详细。

    @ManyToMany(cascade = {CascadeType.PERSIST},fetch = FetchType.EAGER)
    @JoinTable(name = “sh_users_roles”,
    joinColumns={@JoinColumn(name = “users_id”)},
    inverseJoinColumns={@JoinColumn(name = “roles_id”)})
    private List roles;
    上面是配置,

你可能感兴趣的:(Spring,boot,Java)