Как заполнить свойства управляемого компонента данными из БД при использовании для чтения существующих данных? - PullRequest
0 голосов
/ 10 октября 2011

У меня есть очень простой управляемый компонент LOB, который используется для чтения существующих больших объектов (из БД), а также для записи новых LOB в БД.

@ManagedBean(name = "lob")
@RequestScoped
public class LOB implements Serializable {    
    private int id;
    private String title;
    private String content;    

    public void createNewLOB(){    
       // code for adding new lob goes here
    }

    /** getters and setters for various bean properties go here**/

}

Теперь, поскольку я использую один и тот же компонент LOB для чтения существующих LOB данных, прочитанных из БД, и того же компонента (но, конечно, другого экземпляра) для записи нового LOB в БД. Как мне сообщить экземпляру bean-компонента для получения данных из DB, когда для bean-компонента был создан экземпляр для чтения существующего большого объекта?

Должен ли я получать данные, относящиеся к каждому свойству bean-компонента внутри геттеров, для каждого свойства ?? Я думаю, это не очень хороший вариант, потому что я хотел бы прочитать все данные из БД одновременно.

Итак, я хочу, чтобы свойства bean-компонентов заполнялись данными из DB за один раунд, задолго до того, как получатели для свойств bean-компонентов вызывались выражениями EL, используемыми в коде facelets.

Могу ли я как-то сказать, что экземпляр был создан для чтения существующих данных, а не для записи новых LOB?

1 Ответ

1 голос
/ 10 октября 2011

Как мне сообщить экземпляру компонента для извлечения данных из БД, когда экземпляр компонента был создан для чтения существующего большого объекта?

Просто выполните работу в конструкторе (post).


Могу ли я как-то сказать, что экземпляр создан для чтения существующих данных, а не для записи нового большого объекта?

Проверьте, не id не null.


Обратите внимание, что таким образом вы объединяете понятия «управляемый компонент», «сущность» и «объект доступа к данным» в один класс. Это жесткая связь и не обязательно хороший дизайн.

...