Следует ли разрешить Spring-data-jdbc EntityRowMapper пропускать свойства, отсутствующие в исходной карте?

Мы рассматриваем возможность внедрения Spring Data JDBC в наш существующий проект, чтобы свести к минимуму шаблонный код - но мы столкнулись с проблемой: у нас есть bean-классы, которые захватывают все столбцы в таблице, но мы используем запросы, которые не извлекают все столбцы с тех пор некоторые значения не нужны в определенном контексте. Spring Data JDBC по умолчанию EntityRowMapper генерирует исключение, когда в исходной карте отсутствует свойство, присутствующее в компоненте.

Было бы разумно ожидать, что это по умолчанию EntityRowMapper должен быть в состоянии игнорировать эти свойства? (укажите, что можно пропускать их при создании результирующего объекта или иметь аннотацию, позволяющую программисту указать значение по умолчанию, которое будет использоваться, если оно отсутствует на исходной карте)

1 ответ

Разумно ли ожидать чего-то подобного? Конечно, почему бы и нет.

Причина, почему это в настоящее время не так, двояка:

  1. Если бы это было поведение по умолчанию, было бы легко выбрать столбец с неправильным именем и получить null значение в сущности, не замечая, что что-то пошло не так.

  2. Я считаю это плохим стилем. Если вы просто хотите, чтобы некоторые столбцы / атрибуты использовали тип возврата, который имеет именно эти столбцы / атрибуты

Другие вопросы по тегам