PostgreSQL
 sql >> Base de Dados >  >> RDS >> PostgreSQL

Cayenne, Postgres:geração de chave primária


Da sua descrição nos comentários, das 2 colunas que compõem o PK de 'telefonocliente', apenas uma é verdadeiramente independente - 'cod_telefono'. Isso será o que Cayenne irá gerar. No caso do PosgreSQL, você precisará da seguinte sequência no DB para que isso aconteça:
CREATE SEQUENCE pk_telefonocliente INCREMENT 20 START 200;

Agora, de onde vem o segundo PK 'cod_cliente'? Como também é FK para outra tabela, significa que é uma PK "dependente", e deve vir de um relacionamento. Então, primeiro você precisa mapear um relacionamento muitos-para-um entre 'telefonocliente' e 'cliente'. Marque a caixa de seleção "To Dep Pk" no lado 'telefonocliente'. Gere um ObjRelationship correspondente para seus objetos Java. Agora você pode usá-lo em seu código:
Cliente c = .. // get a hold of this object somehow   
TelefonoCliente telefono = context.newObject(TelefonoCliente.class);
telefono.setFijo(4999000);
telefono.setCliente(c); // this line is what will populate 'cod_cliente' PK/FK

Deve ser isso.