Java spring boot mysql jpa命令行运行程序问题

Java spring boot mysql jpa命令行运行程序问题,java,mysql,spring-boot,jpa,Java,Mysql,Spring Boot,Jpa,我想使用CommandLineRunner在run()方法中创建一个用户。我想在Tomcat运行时自动调用这个方法并向JPA注册它。下面我分享了我在项目中使用的代码。当我以这种方式运行时,tomcat服务器工作正常,系统启动了,但没有注册到数据库。我该如何解决这个问题 用户 @Data @Entity @Table(name = "user") public class User { @Id @GeneratedValue(strategy = GenerationType.A

我想使用CommandLineRunner在run()方法中创建一个用户。我想在Tomcat运行时自动调用这个方法并向JPA注册它。下面我分享了我在项目中使用的代码。当我以这种方式运行时,tomcat服务器工作正常,系统启动了,但没有注册到数据库。我该如何解决这个问题

用户

@Data
@Entity
@Table(name = "user")
public class User {

    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "user_id")
    private int id;
    @Column(name = "email")
    @Email(message = "*Please provide a valid Email")
    @NotEmpty(message = "*Please provide an email")
    private String email;
    @Column(name = "password")
    @Length(min = 5, message = "*Your password must have at least 5 characters")
    @NotEmpty(message = "*Please provide your password")
    private String password;
    @Column(name = "name")
    @NotEmpty(message = "*Please provide your name")
    private String name;
    @Column(name = "last_name")
    @NotEmpty(message = "*Please provide your last name")
    private String lastName;
    @Column(name = "active")
    private int active;
    //JOIN tables
    @ManyToMany(cascade = CascadeType.ALL)
    @JoinTable(name = "user_role", joinColumns = @JoinColumn(name = "user_id"), inverseJoinColumns = @JoinColumn(name = "role_id"))
    private Set<Role> roles;

    public User() {};

    public User(String email, String password, String name, String lastName, int active) {
        this.email=email;
        this.password=password;
        this.name=name;
        this.lastName=lastName;
        this.active=active;
    }

    //G&S
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getPassword() {
        return password;
    }
    public void setPassword(String password) {
        this.password = password;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getLastName() {
        return lastName;
    }
    public void setLastName(String lastName) {
        this.lastName = lastName;
    }
    public int getActive() {
        return active;
    }
    public void setActive(int active) {
        this.active = active;
    }
    public Set<Role> getRoles() {
        return roles;
    }
    public void setRoles(Set<Role> roles) {
        this.roles = roles;
    }
}
UserRepository

@Repository("userRepository")
public interface UserRepository extends JpaRepository<User, Long> {
    User findByEmail(String email);
}
@Repository("roleRepository")
public interface RoleRepository extends JpaRepository<Role, Integer> {
    Role findByRole(String role);
}
@Repository(“userRepository”)
公共接口用户存储库扩展了JpaRepository{
用户findByEmail(字符串电子邮件);
}
rolerepositional

@Repository("userRepository")
public interface UserRepository extends JpaRepository<User, Long> {
    User findByEmail(String email);
}
@Repository("roleRepository")
public interface RoleRepository extends JpaRepository<Role, Integer> {
    Role findByRole(String role);
}
@存储库(“角色存储库”)
公共接口角色库扩展了JPA角色库{
角色findByRole(字符串角色);
}
服务

@Data
@Entity
@Table(name = "role")
public class Role {
    @Id
    @GeneratedValue(strategy = GenerationType.AUTO)
    @Column(name = "role_id")
    private int id;
    @Column(name = "role")
    private String role;

    //G&S
    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getRole() {
        return role;
    }
    public void setRole(String role) {
        this.role = role;
    }
}
public class ServiceImplement implements CommandLineRunner{
    @Autowired
    UserService userService;
    @Autowired
    UserRepository userRepository; 
    @Autowired
    RoleRepository roleRepository;

    //$2y$12$YN6IjSzj5DYvSpv6jofxV.p8C.zSKKTdnDZ4oc0XT0TmODcUe.s62  =  umut1234

    User umut = null;
    Role userRole = null;

    @Override
    public void run(String... args) throws Exception {
        umut = new User();
        umut.setEmail("umut@umut.com");
        umut.setPassword("$2y$12$YN6IjSzj5DYvSpv6jofxV.p8C.zSKKTdnDZ4oc0XT0TmODcUe.s62");
        umut.setName("Umut");
        umut.setLastName("Eren");
        umut.setActive(1);
        userRole = roleRepository.findByRole("ADMIN");
        umut.setRoles(new HashSet<Role>(Arrays.asList(userRole)));
        userRepository.save(umut);

        System.out.println("***Generated***");
    }
}
公共类ServiceImplement实现CommandLineRunner{
@自动连线
用户服务用户服务;
@自动连线
用户存储库用户存储库;
@自动连线
角色还原性角色还原性;
//$2y$12$YN6IJSJ5DYVSPV6JOFXV.p8C.ZSKKTNDZ4OC0xT0TMODCUE.s62=umut1234
用户umut=null;
Role userRole=null;
@凌驾
公共无效运行(字符串…参数)引发异常{
umut=新用户();
umut.setEmail(“umut@umut.com");
umut.setPassword($2y$12$YN6IjSzj5DYvSpv6jofxV.p8C.zskkdndz4oc0xt0tmodcue.s62”);
umut.setName(“umut”);
umut.setLastName(“Eren”);
umut.setActive(1);
userRole=roleRepository.findByRole(“管理员”);
setRoles(新的HashSet(Arrays.asList(userRole));
userRepository.save(umut);
System.out.println(“***生成***”);
}
}
公共类服务实现ApplicationRunner{
@自动连线
用户服务用户服务;
@自动连线
用户存储库用户存储库;
@自动连线
角色还原性角色还原性;
用户umut=null;
Role userRole=null;
@凌驾
公共void运行(ApplicationArguments参数)引发异常{
字符串参数=String.join(“|”,args.getSourceArgs());
System.out.println(参数);
如果(args.getNonOptionArgs()包含(“-register”){
umut=新用户();
umut.setEmail(“umut@umut.com");
umut.setPassword($2y$12$YN6IjSzj5DYvSpv6jofxV.p8C.zskkdndz4oc0xt0tmodcue.s62”);
umut.setName(“umut”);
umut.setLastName(“Eren”);
umut.setActive(1);
userRole=roleRepository.findByRole(“管理员”);
setRoles(新的HashSet(Arrays.asList(userRole));
userRepository.save(umut);
System.out.println(“***生成***”);
}
}
}
公共类服务实现ApplicationRunner{
@自动连线
用户服务用户服务;
@自动连线
用户存储库用户存储库;
@自动连线
角色还原性角色还原性;
用户umut=null;
Role userRole=null;
@凌驾
公共void运行(ApplicationArguments参数)引发异常{
字符串参数=String.join(“|”,args.getSourceArgs());
System.out.println(参数);
如果(args.getNonOptionArgs()包含(“-register”){
umut=新用户();
umut.setEmail(“umut@umut.com");
umut.setPassword($2y$12$YN6IjSzj5DYvSpv6jofxV.p8C.zskkdndz4oc0xt0tmodcue.s62”);
umut.setName(“umut”);
umut.setLastName(“Eren”);
umut.setActive(1);
userRole=roleRepository.findByRole(“管理员”);
setRoles(新的HashSet(Arrays.asList(userRole));
userRepository.save(umut);
System.out.println(“***生成***”);
}
}
}
导入org.springframework.boot.ApplicationArguments
导入org.springframework.boot.ApplicationRunner
//添加这两行并将您的推进更改为ApplicationRunner
@组成部分
@顺序(值=1)
公共类ServiceImplement实现ApplicationRunner{
@自动连线
用户服务用户服务;
@自动连线
用户存储库用户存储库;
@自动连线
角色还原性角色还原性;
//$2y$12$YN6IJSJ5DYVSPV6JOFXV.p8C.ZSKKTNDZ4OC0xT0TMODCUE.s62=umut1234
用户umut=null;
Role userRole=null;
@凌驾
公共void运行(ApplicationArguments参数)引发异常{
umut=新用户();
umut.setEmail(“umut@umut.com");
umut.setPassword($2y$12$YN6IjSzj5DYvSpv6jofxV.p8C.zskkdndz4oc0xt0tmodcue.s62”);
umut.setName(“umut”);
umut.setLastName(“Eren”);
umut.setActive(1);
//在向用户添加角色之前保存用户
userRepository.save(umut);
userRole=roleRepository.findByRole(“管理员”);
setRoles(新的HashSet(Arrays.asList(userRole));
userRepository.save(umut);
System.out.println(“***生成***”);
}
}
导入org.springframework.boot.ApplicationArguments
导入org.springframework.boot.ApplicationRunner
//添加这两行并将您的推进更改为ApplicationRunner
@组成部分
@顺序(值=1)
公共类ServiceImplement实现ApplicationRunner{
@自动连线
用户服务用户服务;
@自动连线
用户存储库用户存储库;
@自动连线
角色还原性角色还原性;
//$2y$12$YN6IJSJ5DYVSPV6JOFXV.p8C.ZSKKTNDZ4OC0xT0TMODCUE.s62=umut1234
用户umut=null;
Role userRole=null;
@凌驾
公共void运行(ApplicationArguments参数)引发异常{
umut=新用户();
umut.setEmail(“umut@umut.com");
umut.setPassword($2y$12$YN6IjSzj5DYvSpv6jofxV.p8C.zskkdndz4oc0xt0tmodcue.s62”);
umut.setName(“umut”);
umut.setLastName(“Eren”);
umut.setActive(1);
//在向用户添加角色之前保存用户