戻り値の型が の 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();
この関数を適切に呼び出す方法を教えてください。私は戻り値を期待していません。それを呼び出したいだけです。関数が他のすべてを処理します。