给出以下带注释的命名存储过程查询:
@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
。
如何解决这个问题?
答案 0 :(得分:3)
我通过使用一些拐杖代码来解决这个问题。
@SqlResultSetMapping(
name = "VOID_MAPPING",
classes = {
@ConstructorResult(targetClass = VoidClass.class, columns = {})
}
)
将resultSetMappings添加到@NamedStoredProcedureQuery
。
resultSetMappings = {
"VOID_MAPPING"
}
VoidClass只是一个空类。
public class VoidClass {}
但是,我希望有更好的解决方案。