Я хотел знать, что сообщество считает «лучшими практиками» в отношении отображения иерархий классов с помощью Spring JDBC.
У нас нет возможности использовать полноценный инструмент ORM, однако мы используем Spring JDBC для облегчения некоторых утомительных действий JDBC. Одним из классов, который мы используем очень регулярно, является BeanPropertyRowMapper за его простоту использования и возможность иметь доступ к свойствам бина, не зависящих от типа, из нашего набора результатов.
У меня есть иерархия классов, которая все отображается обратно в одну таблицу (используя подход «таблица-на-иерархию» для этой небольшой иерархии классов). Таким образом, таблица содержит столбец classId, который можно использовать для определения того, какой класс должен быть фактически создан. Ex. 1 = менеджер, 2 = работник, 3 = подрядчик. Все это «Люди», но у каждого подкласса человека есть несколько атрибутов, которые уникальны для их класса.
Моя первоначальная мысль - создать подкласс BeanPropertyRowMapper и попытаться внедрить эту логику, чтобы сказать «если столбец A = 1, то создать экземпляр Manager и затем выполнить вашу номинальную привязку».
Это похоже на разумный подход? Есть ли какие-нибудь другие предложения, которые могли бы работать на вас?
Заранее спасибо за ваши ответы,
Джастин Н.