We have had the same problem with object types.

Our solution:

Make sure that the data types match the table you are using, especially if your data type is referencing other data types.

Make sure that the declaration of the data types are the same across the board i.e. Java as well as the Oracle datatypes, procedures and tables.

This solved our problem.

Hope this helps.