Salve a tutti,
sto giocano un po con java e in particolare su un progetto creato (da qualcun altro) a scopo didattico.
mi sono imbattuto in un problema che non riesco a risolvere.
sostanzialmente nell'insert viene inserita la pk = 0 recuperata dall'inserimento precedente (si è "perso" quella reale) e quindi quando esegue la query da errore di pk duplicata (anche se la 0 nel DB non c'è
).
la soluzione più semplice che mi è venuta in mente è quella di forzare la pk una volta per poi procedere normalmente, ma non riesco a capire come fare.
PS: sono aperto a tutti i tipi di soluzione 
GRAZIE
codice:
public int insert(Film film) throws DAOException{
String sql = "INSERT INTO FILM (TITOLO,ANNO,DURATA,GENERE,COSTO,IDREGISTA,POSTER,URL,INFO) "
+ " VALUES(?,?,?,?,?,?,?,?,?) ";
try (PreparedStatement pst = con.prepareStatement(sql, new String[]{"IDFILM"});) {
//sostituzione dei marcatori ?:
pst.setString(1, film.getTitolo());
pst.setShort(2, film.getAnno()==null ? null : film.getAnno() );
pst.setShort (3, film.getDurata());
pst.setString(4, film.getGenere()==null ? null : film.getGenere() );
pst.setDouble(5, film.getCosto());
pst.setInt (6, film.getRegista().getIdregista());
pst.setString(7, film.getPoster());
pst.setString(8, film.getUrl());
pst.setString(9, film.getInfo()==null ? null : film.getInfo() );
System.out.println(film.toString());
//Esegue la query preparata
pst.executeUpdate();
System.out.println("insert ok");
//ottiene la PK generata da TRIGGER==>SEQUENCE
res = pst.getGeneratedKeys();
res.next();
//contiene l'ultima PK generata
return res.getInt(1);