Prezados, bom dia!
Alguém por favor pode exemplificar via código o uso do findbyid do JpaRepository envolvendo chave composta? Obrigado.
Prezados, bom dia!
Alguém por favor pode exemplificar via código o uso do findbyid do JpaRepository envolvendo chave composta? Obrigado.
Oi Lucas, tudo bem?
Entidade Employee.java
@Entity
@Table(name = "employees")
public class Employee implements Serializable {
@EmbeddedId
private EmployeeId employeeId;
Chave composta EmployeeId.java
@Embeddable
public class EmployeeId implements Serializable {
@Column(name = "employee_id")
private Long employeeId;
@Column(name = "department_id")
private Long departmentId;
Consulta por findById usando o EmployeeId:
Optional<Employee> employee = employeeRepository.findById(new EmployeeId(100L, 10L));
Boa noite. Já ajudou muito, porém fiquei com outra dúvida. Se a chave fosse composta por campos de outro tipo, como por exemplo:
@Embeddable public class EmployeeId implements Serializable {
@Column(name = "employee_id")
private Integer employeeId;
@Column(name = "department_id")
private String departmentId;
Como seria o findById? Por último, como seria a URL de consulta, ou seja, como informar a chave composta na consulta atraves do navegador ou outra ferramenta de teste como o Postman?
Oi Lucas,
Nao muda muita coisa em relacao ao que o Otavio explicou. Seria algo assim:
employeeRepository.findById(new EmployeeId(100L, "10"));
Se for uma consulta, poderia ser uma requisicao GET passando os parametros do ID na url:
/api/employee?employeeId=100&departmentId=10
Se a requisicao for do tipo POST os parametros seriam enviados no corpo da requisicao.
Bons estudos!