PostgreSQL
 sql >> Base de données >  >> RDS >> PostgreSQL

Cayenne, Postgres :génération de clé primaire

D'après votre description dans les commentaires, sur 2 colonnes comprenant le PK de 'telefonocliente', une seule est vraiment indépendante - 'cod_telefono'. Ce sera ce que Cayenne va générer. Dans le cas de PosgreSQL, vous aurez besoin de la séquence suivante dans la base de données pour que cela se produise :

CREATE SEQUENCE pk_telefonocliente INCREMENT 20 START 200;

Maintenant, d'où vient le deuxième PK 'cod_cliente' ? Puisqu'il s'agit également d'un FK vers une autre table, cela signifie qu'il s'agit d'un PK "dépendant" et qu'il doit provenir d'une relation. Vous devez donc d'abord établir une relation plusieurs-à-un entre 'telefonocliente' et 'cliente'. Cochez la case "To Dep Pk" du côté "telefonocliente". Générez une ObjRelationship correspondante pour vos objets Java. Vous pouvez maintenant l'utiliser dans votre code :

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

Ça devrait être ça.