Prezados, bom dia!
Alguém por favor pode exemplificar via código o uso do findbyid do JpaRepository envolvendo chave composta? Obrigado.
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
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=10Se a requisicao for do tipo POST os parametros seriam enviados no corpo da requisicao.
Bons estudos!