[URGENTE]Dúvida chaves estrangeiras e primárias compostas

1 resposta
J

Pessoal, tenho umas dúvidas em relação ao mapeamento de chave composta no Hibernate.

Em primeiro lugar, como mapear uma chave primária composta numa classe, em que nenhuma das chaves é ao mesmo tempo FK.

package framework.classesTeste;

public class Pessoa {

		private int codigo;
		private String cpf;
		private String nome;
		
		public Pessoa() {
			
		}

		public String getNome() {
			return nome;
		}

		public void setNome(String nome) {
			this.nome = nome;
		}

		public int getCodigo() {
			return codigo;
		}

		public String getCpf() {
			return cpf;
		}
	
}

[img]http://images.orkut.com/orkut/photos/OQAAAMfhx0CfvWzkU--4G6aEQ-Z6_XRu2KnxGQXg0NUPA1e0zkeD8347f0FCbDY5jgxB1M2oku4oR5DqBK1u15WyCuYAm1T1UPtehLFzUOezqnQWWyHv_MyC3ozF.jpg[/img]

Em segundo lugar, como mapear uma chave primária composta numa classe, em que ao menos uma chave é PK e FK ao mesmo tempo.

package framework.classesTeste;

public class Funcionario {

	private int id; //PK auto incremento
	
                private Pessoa pessoa; //Porém pessoa deve ter chave composta mapeada
                    
	public Funcionario() {
	
	}

	public Pessoa getPessoa() {
		return pessoa;
	}

	public void setPessoa(Pessoa pessoa) {
		this.pessoa = pessoa;
	}

	public int getId() {
		return id;
	}
}

[img]http://images.orkut.com/orkut/photos/OgAAAIuTig6Qs9KurvHD81p4r--bgI-1wWQhQ_qQUdmALqI-L7BBcgp-Z6xaKO0dzRolSkhcPaHr7jKSQ2LwwdvDAMsAm1T1UFhx6OSLXYM4julonSm06auoDMfr.jpg[/img]

Em terceiro lugar, na herança, como mapear a chave composta da classe pai, na classe filha usando o método de mapeamento TABELA POR SUBCLASSE?

package framework.classesTeste;

public class Funcionario extends Pessoa {

	private int id; //PK auto incremento
	
	public Funcionario() {
	
	}

	public int getId() {
		return id;
	}
}

[img]http://images.orkut.com/orkut/photos/OgAAAJ_VaTM_uA7vuCMN_JGnD1MzRX5hqJ6J4kSUGB-LdibOyfilJ7KyZ6yKhQyMrxsalitqPRmJqNLgrOXv1mEqU9IAm1T1UHXpjk_u66U0xA911cZkVCtX6aRr.jpg[/img]

Em quarto lugar, como fazer uma busca no banco usando o session.get se a tabela tem chave composta?

Estamos fazendo um trabalho de monografia, e precisamos muito da ajuda de vocês. Por favor, colocar bem explícito e se possível com exemplo de código.

Segue diagrama deste contexto:

Atenciosamente,
Guilherme

1 Resposta

R

Há um bom exemplo sobre chaves compostas na documentação oficial do Hibernate:

http://docs.jboss.org/hibernate/stable/core/reference/en/html/misc.html#example-mappings-composite-key

Quanto à questão de como definir um campo pertencente a uma chave composta, mas que também é ele mesmo uma chave estrangeira, você deve declará-lo como em vez de .

Criado 31 de maio de 2009
Ultima resposta 1 de jun. de 2009
Respostas 1
Participantes 2