Ciao,
dipende come hai implementato il campo sul DB.
In generale, se un campo chiave non è riconosciuto come auto-increment, devi dire a Portofino (in realtà ad Hibernate) come calcolare l'ID.
In alcuni casi, potresti fornire tu l'ID (ad esempio recuperandolo con una query che interroghi il db) e settandolo sull'oggetto prima di salvarlo, tipo, in Groovy:
@Override
protected void doSave(object) {
super.doSave(object)
}
Immagino tu abbia usato un trigger, quindi dipende da come è fatto il trigger, ma in generale dovresti riuscire a far funzionare la strategia descritta qui sopra.
In altri casi, ci sono delle strategie automatiche che puoi usare, ad esempio se usi una sequence puoi configurare il nome della sequence e lasciar fare il resto a Portofino/Hibernate. Per questo si possono registrare dei "generator" nel modello, ma:
- Portofino ne supporta solo alcuni. Nel caso di un trigger, dovresti usare un "select generator" che recupera il valore dal db dopo l'inserimento, ma al momento questo non è implementato.
- Non esiste interfaccia grafica per farlo, quindi devi agire sull'XML.
- Inoltre se non ricordo male su Portofino 4 non tutti i tipi di generatore implementati in realtà funzionano a dovere (sul 5 invece sì).
In Portofino 5 in teoria puoi anche mettere le annotazioni di Hibernate direttamente nel modello di Portofino, saltando il supporto nativo per i generator, ma questa è una cosa piuttosto avanzata che non consiglierei per un caso come questo.
Alessio