#java #hibernate #postgresql #jpa
#java #спящий режим #postgresql #jpa
Вопрос:
Учитывая следующий аннотированный запрос именованной хранимой процедуры:
@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
.
Как это можно решить?
Ответ №1:
Я решил эту проблему, используя некоторый вспомогательный код.
@SqlResultSetMapping(
name = "VOID_MAPPING",
classes = {
@ConstructorResult(targetClass = VoidClass.class, columns = {})
}
)
Добавление результирующих наборов в @NamedStoredProcedureQuery
.
resultSetMappings = {
"VOID_MAPPING"
}
VoidClass — это просто пустой класс.
public class VoidClass {}
Но я надеюсь на лучшее решение.