给定以下带注释的命名存储过程查询:
@NamedStoredProcedureQueries({
@NamedStoredProcedureQuery(
name = "procedureName",
procedureName = "stored_procedure"
)
})
然后执行:
StoredProcedureQuery query = entityManager.createNamedStoredProcedureQuery("procedureName");
query.executeUpdate();
stored_procedure返回postgres
void
。结果例外:
Caused by: org.hibernate.MappingException: No Dialect mapping for JDBC type: 1111
。如何解决?
最佳答案
我通过使用一些拐杖代码解决了这个问题。
@SqlResultSetMapping(
name = "VOID_MAPPING",
classes = {
@ConstructorResult(targetClass = VoidClass.class, columns = {})
}
)
将resultSetMappings添加到
@NamedStoredProcedureQuery
。 resultSetMappings = {
"VOID_MAPPING"
}
VoidClass只是一个空类。
public class VoidClass {}
但是,我希望有一个更好的解决方案。