我在尝试通过 JPA api 调用 postgresql 函数时遇到此异常。我在使用未知类型时看到了以下错误,但这是 String/Varchar。
有什么想法吗?
javax.persistence.PersistenceException: org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111
Java代码:
StoredProcedureQuery query = entityManager.createStoredProcedureQuery("log.uf_remove_fks")
.registerStoredProcedureParameter("_schema", String.class,
ParameterMode.IN)
.setParameter("_schema", schema);
query.execute();
PostgreSQL 函数:
CREATE OR REPLACE FUNCTION log.uf_remove_fks(_schema VARCHAR(10))
RETURNS VOID
AS $$
DECLARE rec RECORD;
BEGIN
...
END;
$$ LANGUAGE plpgsql;
堆栈跟踪:
最佳答案
似乎 Hibernate 对返回 VOID 的函数不满意,因此将其更改为返回 INT 并在最后调用 RETURN 1 解决了问题。
关于postgresql - JPA - 使用 varchar 调用 postgresql 函数时为 "No Dialect mapping for JDBC type: 1111",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45623166/