Ciao a tutti, uso degli oggetti dao con un database SQL Server, e nel codice che vado a postare mi da errore "NullPointerException" sull'oggetto dnd, mentre se tolgo l'istruzione setAutoComit(false) il tutto funziona.
Inoltre lo stesso oggetto dao funziona usando le transazioni associate con altri oggetti dao, ma con nDao no.
Sapete se ci sono particolari problemi con le transazioni e sql server ?
Lo utilizzo senza problemi con tutti gli altri archivi (tabelle) ma in questo caso ho riverificato tutto più volte ma non funziona (java -version 1.6.0).
Lo stesso codice lo uso con altre tabelle e funziona.
Ho verificato il codice SQL delle classi dao ma è giuso (anche perche se ometto il setAutoComit) la procedura funziona e aggiorna le due tabelle.
Grazie
codice:public void add(NestVO entry){ // apro la connessione Db dataBase = new Db(true); // apro docNr DocNrPK docNrPK = new DocNrPK(DocNrDAO.DOCNR_NEST, 0); DocNrDAO dnd = DocNrDAOFactory.getInstance(); DocNrVO docNrVO = dnd.retrive(docNrPK, dataBase); int newDocNr = docNrVO.getNrUltDoc(); // aggiorno docNr newDocNr++; docNrVO.setNrUltDoc(newDocNr); docNrVO.setDtaUltDoc(new Date()); // aggiorno dati input entry.setIdNest(newDocNr); NestDAO nDao = NestDAOFactory.getInstance(); // inizio la transazione dataBase.setAutoComit(false); if(nDao.add(entry, dataBase)){ if(dnd.update(docNrVO, dataBase)){ // chiudo la transazione dataBase.commit(); // aggiorno lo stato del model this.nestVO = entry; // pulisco la lista nestOrd //tblMdlNestOrd.clear(); super.setChanged(); }else{ dataBase.rollback(); } } else{ dataBase.rollback(); } nDao = null; dnd = null; // chiudo la connessione dataBase.disconnetti(); dataBase = null; // notifico super.notifyObservers(); }

Rispondi quotando