sql >> Base de Datos >  >> RDS >> PostgreSQL

Cayenne, Postgres:generación de claves primarias

Según su descripción en los comentarios, de las 2 columnas que componen el PK de 'telefonocliente', solo una es realmente independiente:'cod_telefono'. Esto será lo que generará Cayenne. En el caso de PosgreSQL, necesitará la siguiente secuencia en la base de datos para que esto suceda:

CREATE SEQUENCE pk_telefonocliente INCREMENT 20 START 200;

Ahora bien, ¿de dónde sale el segundo PK 'cod_cliente'? Dado que también es FK para otra tabla, significa que es un PK "dependiente" y debe provenir de una relación. Entonces, primero debe mapear una relación de muchos a uno entre 'telefonocliente' y 'cliente'. Marque la casilla de verificación "To Dep Pk" en el lado 'telefonocliente'. Genere una ObjRelationship coincidente para sus objetos Java. Ahora puedes usarlo en tu 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

Eso debería ser todo.