Я не могу подтвердить это какой-либо профессиональной документацией, но вот мое мнение по этому вопросу.Я думаю, у вас есть два возможных пути.
Только DTO
Первый 1008 * полагается на то, что Model Model - это простые DTO, используемые толькодля сохранения данных, без выполнения логики.Здесь вы можете оставить поля POJO неинициализированными , так как Hibernate сделает это автоматически, прежде чем вы получите постоянный объект через Session.Я уверен, что вы уже знаете, что Hibernate будет молча оборачивать все коллекции в свои собственные обертки, которые необходимы внутреннему механизму персистентности.
Правильные классы моделей
Второй подход продвигает POJO немного дальше.В этом сценарии вы можете выполнить некоторую логику в методах getters и setters.Это не такой уж редкий сценарий, в конце концов, он вполне приемлем для MVC, и очень часто возникает необходимость добавить к ним некоторый код.Например - регистрация некоторой информации при вызове метода установки, пример ниже:
public void setItems(List<Object> items){
LOGGER.info("Setting '{}' new items", items.size());
this.items = items;
}
В этом случае могут возникнуть проблемы, поскольку, насколько я знаю, коллекция не будет инициализирована Hibernate на этом этапе, В этом случае явная инициализация была бы лучше.
Последнее замечание: я не специалист по Hibernate, я также не знаю, изменилось ли что-нибудь в 4.x, но я знаюЯ пережил эту проблему в какой-то момент.