2017-08-10 1 views
1

Je reçois cette exception lorsque j'essaie d'appeler une fonction postgresql via l'API JPA. J'ai vu l'erreur suivante lors de l'utilisation de types inconnus, mais c'est String/Varchar.JPA - "Aucun mappage de dialecte pour le type JDBC: 1111" lors de l'appel d'une fonction postgresql avec varchar

Des idées?

javax.persistence.PersistenceException: org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111 

code Java:

StoredProcedureQuery query = entityManager.createStoredProcedureQuery("log.uf_remove_fks") 
              .registerStoredProcedureParameter("_schema", String.class, 
                      ParameterMode.IN) 
              .setParameter("_schema", schema); 
query.execute(); 

fonction Postgresql:

CREATE OR REPLACE FUNCTION log.uf_remove_fks(_schema VARCHAR(10)) 
    RETURNS VOID 
AS $$ 
    DECLARE rec RECORD; 
BEGIN 
    ... 
END; 
$$ LANGUAGE plpgsql; 

Stack Trace:

Stack Trace

Répondre

0

Il semble Hibernate est pas content de la fonction retournant VOID, donc en le changeant pour retourner INT et en appelant simplement RETURN 1 à la fin résolu le problème.