PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Cayenne, Postgres:generazione della chiave primaria

Dalla tua descrizione nei commenti, su 2 colonne che compongono il PK di 'telefonocliente', solo una è veramente indipendente:'cod_telefono'. Questo sarà ciò che Cayenne genererà. In caso di PosgreSQL, avrai bisogno della seguente sequenza nel DB affinché ciò avvenga:

CREATE SEQUENCE pk_telefonocliente INCREMENT 20 START 200;

Ora, da dove viene il secondo PK 'cod_cliente'? Poiché è anche FK su un'altra tabella, significa che è un PK "dipendente" e deve provenire da una relazione. Quindi prima devi mappare una relazione molti-a-uno tra "telefonocliente" e "cliente". Spunta la casella "To Dep Pk" sul lato "telefonocliente". Genera una ObjRelationship corrispondente per i tuoi oggetti Java. Ora puoi usarlo nel tuo codice:

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

Dovrebbe essere così.