Q:

How to fill managed bean properties with data from DB when using for existing data read?

I have a very simple managed bean LOB which is used for reading existing LOBs(from DB) as well as for writing new LOB to DB.
@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**/

}

Now, since I am using the same LOB  bean to read existing LOB(s) read from DB and the same bean (but ofcourse different instance) to write a new LOB to DB. How do I tell the bean instance to retrieve data from DB when bean has been instantiated to read existing LOB ?
Should I retrieve data specific to each bean property inside the getters for each property ?? Not good option, I guess because I would like to read all the data from DB at once. 
So , what I want is,  bean properties should be filled with data from DB in one single round, well before the getters for bean properties are called by EL expressions used in facelets code.
Can I somehow tell that the instance has been created for reading existing data & not for writing new 
LOB?

A:

How do I tell the bean instance to retrieve data from DB when bean has been instantiated to read existing LOB ?

Just do the job in the (post)constructor.

Can I somehow tell that the instance has been created for reading existing data & not for writing new LOB?

Check if id is not null.

Note that you're mixing the concepts "managed bean", "entity" and "data access object" into a single class this way. This is tight coupling and not necessarily good design.

