A foreign composite key constraint doesn't match the corresponding primary composite key unless the order of the columns that make up the composite key is the same.
Given a table called "icone" with the following primary key: "CONSTRAINT icone_PK PRIMARY KEY(seticone,idazione)".
"CONSTRAINT BOTTONE_FK3 foreign key(seticone,idazione) references icone on delete cascade"
"CONSTRAINT BOTTONE_FK3 foreign key(idazione,seticone) references icone on delete cascade"
should be the same thing (IMHO) but it's not the same according to Derby.
The latter syntax is apparently broken and when inserting a new row, in the table that has such constraint, there is an error because Derby swaps the two attributes that make up the composite key and thus the FK constraint cannot be fulfilled.