Salve, ispirandoci ad uno schema che si trova nel vostro documento "Overview Document" a pag.11, abbiamo definito le seguenti classi:
- Modelli (superclasse)
- ModelliComputer (classe "foglia").
- Hardware, superclasse che eredita dalla classe di default "Asset".
- Computer, che eredita dalla superclasse Hardware.
Abbiamo quindi definito il dominio "ModelloHardware" con classe di partenza "Modelli" e destinazione "Hardware", con cardinalità 1:N.
Nella classe Hardware abbiamo definito un attributo "ModelloHardware" di tipo Reference, collegato alla classe Modelli.
In fase di importazione dati da file csv nella classe Computer, l'operazione fallisce con un errore java del quale si riportano qui sotto i messaggi di errore trovati nel log di tomcat 5.5:
---
...
[cmdbuild.services.DBService]
[close :168]
CloseConnection: cmdbuild.elements.CMDBclass.createCardBatch(957)
Time for query: 16
java.sql.BatchUpdateException: L'operazione «batch» 1 INSERT INTO "Computer" ("Code","SerialNo","Brand","VersionNo","DeliveryDate","WarrantyExpireDate","Astipo","ModelloHardware","LocazioneHardware","Utarbr","ContrattoHardware","Ascomm","Asnome","Asnedp","Asprop","Maicom","Mainfo","Macddv","Mandsk","Maramm","Masdit","Masmsb","Masnbt","Masnbu","Masncp","Masnsr","Mavide","Madest","Manet","Matype","Matiim","IdClass","Status","User") VALUES ('7484','BGXHF1J',18,'Latitude D600','2004-12-31','2005-12-31',94,422,174,17,691,'71570494209','EDP000373','0373',88,78,'FALSE','CD-ROM/DVD RW',0,512,40000,0,0,0,0,0,'14',75,'TRUE','G4911',82,107776,'A','admin') è stata interrotta. Chiamare «getNextException» per scoprirne il motivo.
at org.postgresql.jdbc2.AbstractJdbc2Statement$BatchResultHandler.handleError(AbstractJdbc2Statement.java:2423)
at org.postgresql.core.v3.QueryExecutorImpl$1.handleError(QueryExecutorImpl.java:386)
at org.postgresql.core.v3.QueryExecutorImpl.processResults(QueryExecutorImpl.java:1257)
at org.postgresql.core.v3.QueryExecutorImpl.execute(QueryExecutorImpl.java:334)
at org.postgresql.jdbc2.AbstractJdbc2Statement.executeBatch(AbstractJdbc2Statement.java:2485)
...
---
Quale può essere il motivo?
Grazie.
Buongiorno,
purtroppo la motivazione dell'errore non è così chiara. Le consiglierei di eseguire manualmente (ad esempio attraverso PGAdmin) la query SQL che genera l'errore in modo da ottenere l'errore SQL vero e proprio.
Potrebbe essere ad esempio che manchi un campo definito come obbligatorio, o che si cerchi di inserire in un campo definito come unico un valore già inserito in precedenza.
Saluti,
Lisa
Il problema è che il dominio è stato definito tra due superclassi.
saluti,
E.