Я новичок в весенних данных. У меня есть приложение h2 db, а также контроллер покоя. По сути, у меня есть несколько конечных точек, которые вы вызываете для выполнения определенных запросов. Конечная точка будет использовать itnerface, который расширяет crudrepository и выполняет запросы. Проблема заключается в том, что я называю конечные точки, но, похоже, не находит ничего в базе данных. Я получил доступ к консоли db и вижу свои предварительно заполненные данные, которые я заполняю с помощью data.sql
.
. Вот что у меня есть:
@Repository
public interface EmployeeRepository extends CrudRepository<Employee, Long> {
}
Это моя сущность:
@Entity
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String firstname;
public Employee(){}
public Employee(String firstname, String lastname, String email) {
this.firstname = firstname;
this.lastname = lastname;
this.email = email;
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
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 getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
private String lastname;
private String email;
}
Контроллер:
@RestController
public class EmployeeController {
@Autowired
EmployeeService employeeServices;
@GetMapping("/getAllEmployees")
public void getAllEmployees(){
//Add employee to db via spring data
employeeServices.getAllEmployees();
}
@GetMapping("/deleteEmployee/{id}")
public void delete(@PathVariable Long id){
//Delete employee to db via spring data
employeeServices.deleteEmployee(id);
System.out.printf("Deleted");
}
@PostMapping("/createEmployee")
public void create(@RequestBody Employee employee){
//Add employee to db via spring data
Employee save = employeeServices.createEmployee(employee);
System.out.println("created: " + save.toString());
}
}
И мой сервис:
@Service
public class EmployeeService
{
@Autowired
EmployeeRepository employeeRepository;
public void getAllEmployees(){
List<Employee> listOfEmployees = new ArrayList<>();
employeeRepository.findAll().forEach(employee -> listOfEmployees.add(employee));
System.out.println(listOfEmployees);
}
public void deleteEmployee(Long id){
employeeRepository.deleteById(id);
System.out.println("deleted.");
}
public Employee createEmployee(Employee employee){
employeeRepository.save(employee);
System.out.println("saved.");
return employee;
}
}
И это мое приложение.
#Server
server.port=9975
# H2
spring.h2.console.enabled=true
spring.h2.console.path=/h2
# Datasource
spring.datasource.url=jdbc:h2:file:./fileOrDbName
spring.datasource.username=sa
spring.datasource.password=
spring.datasource.driver-class-name=org.h2.Driver
И мои данные. sql:
DROP TABLE IF EXISTS TBL_EMPLOYEES; CREATE TABLE TBL_EMPLOYEES (id INT AUTO_INCREMENT PRIMARY KEY, first_name VARCHAR(250) NOT NULL, last_name VARCHAR(250) NOT NULL, email VARCHAR(250) DEFAULT NULL); INSERT INTO TBL_EMPLOYEES (first_name, last_name, email) VALUES ('Lokesh', 'Gupta', 'abc@gmail.com'), ('Caption', 'America', 'cap@marvel.com');
Приложение запускается нормально, и я могу получить доступ к консоли db через localhost:9975/h2
, но контроллеры crud, похоже, не обращаются к db , Есть идеи?