Java spring boot mysql jpa命令行运行程序问题
我想使用CommandLineRunner在run()方法中创建一个用户。我想在Tomcat运行时自动调用这个方法并向JPA注册它。下面我分享了我在项目中使用的代码。当我以这种方式运行时,tomcat服务器工作正常,系统启动了,但没有注册到数据库。我该如何解决这个问题 用户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
@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);
//在向用户添加角色之前保存用户