Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Spring引导多对多重复记录_Java_Spring_Hibernate_Jpa_Spring Data Jpa - Fatal编程技术网

Java Spring引导多对多重复记录

Java Spring引导多对多重复记录,java,spring,hibernate,jpa,spring-data-jpa,Java,Spring,Hibernate,Jpa,Spring Data Jpa,我正在尝试使用SpringBoot创建用户管理API。(代码优先) 我在添加新用户时遇到问题。 例如,如果我在角色表中添加root\u 1-admin和root\u 2-admin,我有两条记录 角色表: [id] [name] 1 admin 2 admin 型号: 用户 @Data @Entity public class AppUser { @Id @GeneratedValue(strategy = GenerationType.AUTO)

我正在尝试使用SpringBoot创建用户管理API。(代码优先)

我在添加新用户时遇到问题。
例如,如果我在角色表中添加root\u 1-admin和root\u 2-admin,我有两条记录

角色表:

[id]  [name]
 1    admin
 2    admin

型号: 用户

@Data
@Entity
public class AppUser {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    private Long id;
    private String username;
    private String password;
    private String firstName;
    private String lastName;
    //@ManyToMany(fetch = FetchType.EAGER,cascade = CascadeType.ALL)
    @ManyToMany(fetch = FetchType.LAZY, cascade = {CascadeType.PERSIST, CascadeType.MERGE})
    @JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))
    private Set<Role> roles;

    public AppUser() {
    }

    public AppUser(String username, String password, String firstName, String lastName, Set<Role> roles) {
        this.username = username;
        this.password = password;
        this.firstName = firstName;
        this.lastName = lastName;
        this.roles = roles;
    }

}
服务用户服务impl

    @Override
    public void addUser(AppUser user) {

        user.setPassword(encoder.encode(user.getPassword()));

        userRepository.save(user); // JpaRepository
    } 
    @Override
    public void addUser(AppUser user) {

        user.setPassword(encoder.encode(user.getPassword()));

        userRepository.save(user); // JpaRepository
    }