EnrollmentPK (Embeddable)
Criaremos um subpacote em entidades chamado PK, com a classe EnrollmentPK. Ela terá duas referências: para o User e Offer.
Lembrar de implementar Getter and Setter. O equals&hashCode será comparado as DUAS classes para verificar a matrícula.
@Embeddable
public class EnrollmentPK {
@ManyToOne
@JoinColumn(name = "user_id")
private User user;
@ManyToOne
@JoinColumn(name = "offer_id")
private Offer offer;
//construtor vazio e com argumentos + getters and setters
//equals&hashcode será comparado entre User e Offer para verificar
//a matrícula
Precisamos passar o @Embeddable na classe pois ela irá definir atributos de outra classe.
Quando temos uma classe que subdivide atributos de outra, passamos essa anotação. ❗Na classe Enrollment, passaremos o @EmbeddedId.
Atualizado