On 03/05/11 02:03, Steven Dahlin wrote:
> In trying to call a postgresql 8.4 stored function I am passing a
> class as well as a List (I have to save a master record as well as the
> detail records). This is being done with a native query using
> EclipseLink 2.1. However, I am getting back a message for the first
> item:
>
> PSQLException: Can't infer the SQL type to use for an instance of
> com.hwcs.veri.shared.dto.MyClass. Use setObject() with an explicit
> Types value to specify the type to use.
>
> I am calling the query setting up the parameter with:
>
> query.setParameter( 1, myClass );
You'll have to translate 'MyClass' to a SQL type representation (say,
'text') yourself, use a form of query.setParameter() that takes a
javax.sql.Types argument allowing you to specify the SQL type, or write
a mapping for ExclipseLink to support your data type.
The JDBC interface doesn't really understand complex types, record
representations, etc. Because EclipseLink tries to use only the basic,
widely supported features of JDBC you can't easily use PgJDBC extensions
to map between PostgreSQL types and Java types directly.
--
Craig Ringer