Hibernate - composite-id

0 respostas
I

Gostaria de criar uma chave composta por duas id’s, com o hibernate, onde a idéia é que uma das id’s seja um valor incremental gerado automaticamente, para o exemplo seguinte, criado no postgresql:

CREATE SEQUENCE usuario_id_seq;
CREATE TABLE usuario (
  id INTEGER NOT NULL DEFAULT nextval('usuario_id_seq'),
  PRIMARY KEY(id)
);

CREATE SEQUENCE conta_id_seq;
CREATE TABLE conta (
  id INTEGER NOT NULL DEFAULT nextval('conta_id_seq'),
  id_usuario INTEGER NOT NULL,
  PRIMARY KEY(id, id_usuario),
  FOREIGN KEY(id_usuario)
    REFERENCES usuario(id)
);

Caso não considere a coluna ‘id’ da tabela ‘conta’ como um valor gerado automaticamente, Conta.hbm.xml pode ser escrito da seguinte forma:

<class name="Conta" table="conta">
  	<composite-id name="id" class="ContaId">
  		<key-property name="id" type="integer" column="id"/>
  		<key-many-to-one name="usuario" class="Usuario" column="id_usuario"/>
  	</composite-id>
  </class>

Alguém poderia ajudar?
Obrigado pela atenção!

Criado 25 de maio de 2007
Respostas 0
Participantes 1