Когда необходимо добавить скаляр в именованный запрос? Например:
<return-scalar column="colName" type="java.lang.String" />
Иногда они кажутся ненужными, а иногда, без скаляра, запрос будет выдавать исключение.
Позвольте мне поделиться некоторыми материалами.
Если ваш запрос , выберите * из таблицы . SetScalar может использоваться для динамического ограничения количества столбцов.
Если вы используете скаляр, запрос не будет использовать ResultSetMetadata для поиска типа и будет использовать предоставленный тип, который является более быстрым и эффективным.
Как java.sql.Types, возвращаемый из ResultSetMetaData, сопоставляется с типами Hibernate, контролируется Диалектом. Если определенный тип не сопоставлен или не приводит к ожидаемому типу, его можно настроить с помощью вызовов registerHibernateType в диалекте.
Подробнее см. Документацию здесь