【发布时间】:2022-01-23 07:46:41
【问题描述】:
我刚刚开始学习和试验 spring-boot 和 hibernate,我似乎无法弄清楚这个问题。
package net.codejava;
import static org.assertj.core.api.Assertions.assertThat;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase;
import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase.Replace;
import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest;
import org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManager;
import org.springframework.test.annotation.Rollback;
@DataJpaTest
@AutoConfigureTestDatabase(replace = Replace.NONE)
@Rollback(false)
public class UserRepositoryTests {
@Autowired
private UserRepositoryTests repo;
@Autowired
private TestEntityManager entityManager;
@Test
public void testCreateUser() {
User user = new User();
user.setEmail("xyz@gmail.com");
user.setPassword("XYZ!@#");
user.setFirstname("XYZ");
user.setLastname("PQR");
user.setUsername("XZY");
User savedUser = repo.save(user);
User existUser = entityManager.find(User.class, savedUser.getIdUser());
assertThat(user.getEmail()).isEqualTo(existUser.getEmail());
}
}
第 38 行有一些错误(即,User savedUser = repo.save(user);) 是说“UserRepositoryTests 类型的方法 save(User) 未定义”
用户.java
package net.codejava;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long idUser;
@Column(nullable = false,unique=true,length = 45)
private String email;
@Column(nullable = false,unique=true,length = 45)
private String firstname;
@Column(nullable = false,unique=true,length = 45)
private String lastname;
@Column(nullable = false,unique=true,length = 45)
private String username;
@Column(nullable = true)
private String IPaddress;
@Column(nullable = false,length = 64)
private String password;
public Long getIdUser() {
return idUser;
}
public void setIdUser(Long idUser) {
this.idUser = idUser;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getFirstname() {
return firstname;
}
public void setFirstname(String firstname) {
this.firstname = firstname;
}
public String getLastname() {
return lastname;
}
public void setLastname(String lastname) {
this.lastname = lastname;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getIPaddress() {
return IPaddress;
}
public void setIPaddress(String iPaddress) {
IPaddress = iPaddress;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
UserRepository.java
package net.codejava;
import org.springframework.data.jpa.repository.JpaRepository;
public interface UserRepository extends JpaRepository<User, Long> {
}
请告诉我该怎么做。
【问题讨论】:
-
您的第二个“src”文件夹中有什么?您的“目标”文件夹上方还有另一个 src 文件夹。
-
我相信您想自动装配 UserRepository 接口,而是自动装配 UserRepositoryTests 类。由于错误表明没有为 UserRepositoryTests 类定义保存方法。
-
是的,这正是问题所在!谢谢。
标签: java spring spring-boot hibernate jpa