Từ mô tả của bạn trong phần nhận xét, trong số 2 cột bao gồm PK của 'telefonocliente', chỉ có một cột thực sự độc lập - 'cod_telefono'. Đây sẽ là những gì Cayenne sẽ tạo ra. Trong trường hợp của PosgreSQL, bạn sẽ cần trình tự sau trong DB để điều này xảy ra:
CREATE SEQUENCE pk_telefonocliente INCREMENT 20 START 200;
Bây giờ, PK 'cod_cliente' thứ hai đến từ đâu? Vì cũng là FK sang bàn khác nên có nghĩa là PK “phụ thuộc”, và phải xuất phát từ mối quan hệ. Vì vậy, trước tiên bạn cần lập bản đồ mối quan hệ nhiều-một giữa 'telefonocliente' và 'cliente'. Đánh dấu vào hộp kiểm "To Dep Pk" ở bên 'telefonocliente'. Tạo mối quan hệ đối tượng phù hợp cho các đối tượng Java của bạn. Bây giờ bạn có thể sử dụng nó trong mã của mình:
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
Chắc là vậy.