servlet.service () для сервлета [DispatcherServlet] в контексте с Path
[] Выбросить исключение [Обработка запроса не удалась; Вложенное исключение-
орг.springframework.dao.datainteGrityViolationException: не null
Ссылки на свойство null или переходное значение:
comm.example.spring.backend.model.employee.firstname; Вложенное исключение
org.hibernate.propertyvalueexception: не нулевые ссылки на свойство
null или переходное значение:
com.example.spring.backend.model.employee.firstname] с корневой причиной < /p>
< /blockquote>
Я создал базу данных с использованием MySQL Workbench и определил в ней таблицу для хранения деталей сотрудника. Вот мой код:
employeecontroller.java
Код: Выделить всё
@RestController
@RequestMapping("/api/employees")
public class EmployeeController {
private EmployeeService employeeService;
public EmployeeController(EmployeeService employeeService) {
super();
this.employeeService = employeeService;
}
// build create employee REST API
@PostMapping()
public ResponseEntity saveEmployee(@RequestBody Employee employee){
return new ResponseEntity(employeeService.saveEmployee(employee), HttpStatus.CREATED);
}
}
Код: Выделить всё
@Data
@Entity
@Table(name="employees")
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private long id;
@Column(name = "first_name", nullable = false)
private String firstName;
@Column(name = "last_name")
private String lastName;
@Column(name = "email")
private String email;
}
Код: Выделить всё
public interface EmployeeRepository extends JpaRepository{
}
Код: Выделить всё
public interface EmployeeService {
Employee saveEmployee(Employee employee);
}
образное
Код: Выделить всё
@Service
public class EmployeeServiceImpl implements EmployeeService{
private EmployeeRepository employeeRepository;
public EmployeeServiceImpl(EmployeeRepository employeeRepository) {
super();
this.employeeRepository = employeeRepository;
}
@Override
public Employee saveEmployee(Employee employee) {
return employeeRepository.save(employee);
}
}
Код: Выделить всё
spring.datasource.url=jdbc:mysql://localhost:3306/employee_management_system?useSSL=false
spring.datasource.username=root
spring.datasource.password=root
# Hibernate properties
spring.jpa.properties.hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect
# create, create-drop
spring.jpa.hibernate.ddl-auto=update
< /code>
При отправке запроса Post с использованием почтмена я получаю ошибку внутреннего сервера 500.
[b] input < /strong> < /p>
{
"firstName": "abc",
"lastName": "abc",
"email": "abc@gmail.com"
}
{
"timestamp": "2022-10-26T09:48:51.322+00:00",
"status": 500,
"error": "Internal Server Error",
"path": "/api/employees"
}
< /code>
Я принимаю ссылку с видео на YouTube; В видео код работает, но не в моем случае.
Что не так в моем коде?
Подробнее здесь: https://stackoverflow.com/questions/742 ... path-threw