Boa Tarde estou com o seguinte problema tenho uma entidade que id chave composta e tenho um campo que e chave unica(unique) tem como eu fazer relacionamento pela chave unica em vez da primary key no hibernate hj para fazer relacionamento uso @ManyToOne
Isso que vc fez e relacionar uma chave composta que e a primary key certo eu quero relacionar pelo indice que e unique nao pela chave primary key.
L
Lucas_Cavalcanti
o jeito eh com essas join columns mesmo… mas já vai se preparando, q algumas operações não vão funcionar direito se vc não usar a primary key como relacionamento (ou pelo menos eu não fui capaz de fazer funcionar :P)
J
jvds
Lucas entao relacionar pela chave unique nao tem jeito exemplo de uma codigo
Em PessoaDoc relacionamento ai nao esta funcionando pela chave unique ?
L
Lucas_Cavalcanti
não sei, vc testou?
J
jvds
sim testei na hora de subir a aplicacao da exception.
Caused by: org.hibernate.AnnotationException: referencedColumnNames(cpf) of br.com.tms.modelo.PessoaDoc.cpf referencing br.com.tms.modelo.Pessoa not mapped to a single property
J
jvds
RESOLVIDO desta forma
@EmbeddablepublicclassPrkPessoaimplementsSerializable{privateIntegerid;privateStringcpf;}@Entity@Table(name="PES",uniqueConstraints={@UniqueConstraint(columnNames={"cpf"})})publicclassPessoa{@EmbeddableIdprivatePrkPessoaId;privateStringnome;//ESPELHO CAMPO para reconhecer UNIQUE KEY ai JoinColumn Funciona@Column(name="cpf",insertable=false,updatable=false)privateStringidcpf;}@EmbeddablepublicclassPrkPessoaDocimplementsSerializable{privateIntegerid_endereco;privateStringcpfdoc;}@EntitypublicclassPessoaDoc{@EmbeddedIdprivatePrkPessoaDocid;@ManyToOne(fetch=FetchType.LAZY)@JoinColumn(name="cpfdoc",referencedColumnName="cpf",insertable=false,updatable=false)privatePessoapessoa;}