我写了一个返回类型为的 PostgreSQL 函数void
:
CREATE OR REPLACE FUNCTION queryinteriorexteriorcount()
RETURNS void AS .....
当我从 pgAdmin 调用它时,该函数按预期工作。但是,当从 Hibernate 调用时,我似乎没有工作。相反,我只是不断收到以下异常:
failed.org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111
我试图创建一个自定义方言并像这样注册我的函数:
public class PostgisDialect extends PostgisDialect {
private static final long serialVersionUID = 3397563913838305367L;
public PostgresDialect(){
registerFunction("queryinteriorexteriorcount", new StandardSQLFunction("queryinteriorexteriorcount"));
}
}
然后我更改了 hibernate.cfg.xml 中的方言:
<property name="dialect">at.opendata.hibernate.PostgresDialect</property>
并尝试通过以下方式(再次)调用该函数:
Query query = session.createSQLQuery("SELECT queryinteriorexteriorcount()");
query.uniqueResult();
你能告诉我如何正确调用这个函数吗?我不期望任何返回值,我只想调用它——该函数会处理其他所有事情。