Ленивая загрузка моделей - PullRequest
0 голосов
/ 22 февраля 2012

Предположим, у меня есть объект модели Event, который содержит Venue.Когда я запрашиваю базу данных для заполнения места, я хочу сохранить только venueid, который можно использовать для отложенной загрузки Venue.

У меня есть класс доступа к данным Events (множественное число) с функцией типа Event findEventByName(String name).Аналогично для других модельных объектов.Если в моем классе Event у меня есть getVenue, например:

public Venue getVenue() {
    if (this.venue == null) 
        this.venue = Venues.findVenueById(this.venueid); 
    return this.venue;
}

Это будет работать, но это соединит мою модель с моим доступом к данным.Я думаю, что мой дизайн не очень "правильный"?Так как мне это изменить.Я думаю, что для этого академического проекта я не буду использовать стороннюю библиотеку, такую ​​как Hibernate, чтобы понять, как это можно реализовать.

1 Ответ

1 голос
/ 22 февраля 2012

Я думаю, что вы правы в том, что это не лучший дизайн для привязки вашей объектной модели к вашему доступу к данным.

Современные объекты для реляционных картографов довольно продвинуты.EclipseLink, например, может динамически изменять байт-код файлов классов, чтобы обеспечить такие функции, как отложенная загрузка.Они называют это ткачество .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...