PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Cayenne, Postgres:Primärschlüsselgenerierung

Aus Ihrer Beschreibung in den Kommentaren geht hervor, dass von 2 Spalten, die das PK von 'telefonocliente' umfassen, nur eine wirklich unabhängig ist - 'cod_telefono'. Das wird Cayenne generieren. Im Fall von PosgreSQL benötigen Sie dazu die folgende Sequenz in DB:

CREATE SEQUENCE pk_telefonocliente INCREMENT 20 START 200;

Woher kommt nun das zweite PK 'cod_cliente'? Da es sich auch um FK zu einem anderen Tisch handelt, bedeutet dies, dass es sich um ein "abhängiges" PK handelt und aus einer Beziehung stammen muss. Zuerst müssen Sie also eine Viele-zu-Eins-Beziehung zwischen 'telefonocliente' und 'cliente' abbilden. Aktivieren Sie das Kontrollkästchen "To Dep Pk" auf der 'telefonocliente'-Seite. Generieren Sie eine passende ObjRelationship für Ihre Java-Objekte. Jetzt können Sie es in Ihrem Code verwenden:

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

Das sollte es sein.