Comment puis-je mettre un String[] paramètre d'une requête native?

C'est mon PostgreSQL fonction:

salvarArquivoGeometricoCasoZeroPOINT
(dimensao text,tableName text,tuplas text[],srid text)

Il a un text[] paramètre, et je veux passer un Java String[] à partir de mon JPQL:

public String salvarGeometriaCaso0(String[] tuplas,FileDto arquivo){
        Query query =
        em().createNativeQuery("select 
salvarArquivoGeometricoCasoZeroPOINT(?1,?2,?3,?4)");
        query.setParameter(1,arquivo.getGeo());//String
        query.setParameter(2,arquivo.getTable());/String
        query.setParameter(3,tuplas);//String[]
        query.setParameter(4,arquivo.getSrid());//String
        return (String) query.getSingleResult();//function returns a Text, so cast to String
}

Le code ci-dessus échoue à l'exception:

ERROR] Internal Exception: org.postgresql.util.PSQLException: Can not infer a SQL
type to use for an instance of [Ljava.lang.String;. 
Use setObject () with an explicit Types value to specify the type to use.

donc je ne sais pas comment appeler ma fonction de EclipseLink.

Avez-vous "[Aide] setObject () explicite Types valeur pour spécifier le type d'utilisation?"
Pouvez-vous me montrer comment faire cela?
Au lieu de query.setParameter(3, tuplas) vous souhaitez appeler setObject() sur un PreparedStatement. docs.oracle.com/javase/7/docs/api/java/sql/...
Mais je suis en utilisant EclipseLink. J'ai à suivre certains modèles, je ne peux pas utiliser un PreparedStatement.
Qui EclipseLink version? Et qui PgJDBC version? Je pensais que EclipseLink et PgJDBC compris que String[] mappé à text[].

OriginalL'auteur Bernardo Vale | 2012-08-20