Usually, the most expensive part of the application is round trips to the database, so it’s much more efficient for me to fill out all your data from one request than to do it one at a time, either as needed or from your constructor. Once you pay for the round trip, you can also get your money.
In addition, in general, your get * methods should be declared as const, which means that they do not modify the underlying object, so if they go to the database to populate the object, it will violate (what you could allow, variables- the members are changing, but that basically defeats the goal of const).
, :