Re: PSQLException Can't infer the SQL type to use with Native Query call - Mailing list pgsql-jdbc

From Craig Ringer
Subject Re: PSQLException Can't infer the SQL type to use with Native Query call
Date
Msg-id 4DBF5B53.2000009@postnewspapers.com.au
Whole thread Raw
In response to PSQLException Can't infer the SQL type to use with Native Query call  (Steven Dahlin <pgdb.sldahlin@gmail.com>)
List pgsql-jdbc
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

pgsql-jdbc by date:

Previous
From: Steven Dahlin
Date:
Subject: PSQLException Can't infer the SQL type to use with Native Query call
Next
From: Andrew Dunstan
Date:
Subject: Re: JDBC specific Buildfarm member