Estou migrando um sistema para Java e devido algumas particularidades do sistema preciso realizar um mapeamento sem a chave primaria.
Segue as classes abaixo:
@Entity
public class Ender {
@EmbeddedId
private EnderPk id;
@Column(name = "DEVEDOR_NOME", length = 50)
private String nome;
}
@Embeddable
public class EnderPk implements Serializable {
private static final long serialVersionUID = 1L;
@Column(name = "DEVEDOR_CPF", length = 15, nullable = false)
private String cpf;
@Column(name = "ENDER_FONTE", length = 1, nullable = false)
private String fonte;
@Column(name = "ENDER_NUMSEQ", nullable = false)
private Long numSeq;
}
public class Devedor {
@Id
@GeneratedValue
@Column(name = "devedor_codigo", nullable = false)
private Long codigo;
@OneToMany(mappedBy = "devedor")
@Cascade(CascadeType.SAVE_UPDATE)
@OrderBy(clause = "CONT_FLAGBAIXA")
private List<Contrato> contratos = new ArrayList<Contrato>();
/* Aqui esta a duvida, não tenho ideia se existe uma forma de criar
* essa List sem usar um atributo mapeado com chave nesta classe
*/
@OneToMany(mappedBy = "EnderPk.cpf")
@Cascade(CascadeType.SAVE_UPDATE)
private List<Ender> enderecos = new ArrayList<Ender>();
}
Como faz pouco tempo que estou programando em java não sei se isso é possivel dessa forma que estou tentando ou existe outra forma de Criar essa List.
Obrigado!
