public class Papel{
....
@OneToMany(mappedBy = "id.papel", cascade =
{ CascadeType.ALL }
, orphanRemoval = true)
private List<PermissaoAtribuida> permissoesAtribuidas = new ArrayList<>();
....
}
public class Permissao
{ .... @Id @Getter @Setter @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "PK", insertable = false, updatable = false) private Integer id; .... }
public class PermissaoAtribuida{
....
@EmbeddedId
private Id id;
@Embeddable
@EqualsAndHashCode(of =
{ "permissao", "papel" }
)
public static class Id
{ @ManyToOne(optional = false, fetch = FetchType.LAZY) @JoinColumn(name = "FK_PERMISSAO", nullable = false) private Permissao permissao; @ManyToOne(optional = false, fetch = FetchType.LAZY) @JoinColumn(name = "FK_PAPEL", nullable = false) private Papel papel; }
....
}