Re: PSQLException Can't infer the SQL type to use with Native Query call

From: Craig Ringer <craig(at)postnewspapers(dot)com(dot)au>
To: Steven Dahlin <pgdb(dot)sldahlin(at)gmail(dot)com>
Cc: pgsql-jdbc(at)postgresql(dot)org
Subject: Re: PSQLException Can't infer the SQL type to use with Native Query call
Date: 2011-05-03 01:33:07
Message-ID: 4DBF5B53.2000009@postnewspapers.com.au
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: 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

In response to

Browse pgsql-jdbc by date

  From Date Subject
Next Message Andrew Dunstan 2011-05-04 22:17:44 Re: JDBC specific Buildfarm member
Previous Message Steven Dahlin 2011-05-02 18:03:54 PSQLException Can't infer the SQL type to use with Native Query call