Java Mailing List Archive

Home » Home (12/2007) » J2EE Pattern »

DAO relation with business object

Deblauwe, Wim


I've looking at the DAO pattern lately and have some problems with it. Especially what is ment by Business Object and ValueObject?
In my words I would call a class User that is a POJO a Business Object, and I would place it in a package "business".
I would then have a class ValueUser in my data package that has all the same methods as business.User. In fact, business.User is just a delegate to data.ValueUser.
Is this already correct? Or is the business class something else and is my User class already a ValueObject?
2nd problem:
When I then create my DAO, e.g. UserDAO. This would typically reside in the data package. There are 2 options then:
public User getUser(int id);
public ValueUser getUser(id);
If my business.User class is already a ValueObject, then a class from my data-layer is dependant on a class from my business-layer. This would be undesirable I think.
Otherwise we refer to the ValueUser which is in the same layer, so this seems ok. But when you try to unit-test User when it is just a delegate for ValueUser, you will do this:
ValueUser valueUser = new ValueUser();
valueUser.setName( "testName" );
... some more here
User user = new User();
user.setValueObject( valueUser );
assertEquals( user.getName(), "testName" );
And I really don't like this. You have to create 2 objects, where 1 should be enough.
I hope the people on this list can help me find some answers,

Ing. Wim Deblauwe
Software Development Engineer
BarcoView - Medical Imaging Systems
Theodoor Sevenslaan 106
B-8500 Kortrijk, Belgium
Tel. +32 56 233 985 Fax +32 56 233 457


- - - - - - - - DISCLAIMER - - - - - - - -

Unless indicated otherwise, the information contained in this message is privileged and confidential, and is intended only for the use of the addressee(s) named above and others who have been specifically authorized to receive it. If you are not the intended recipient, you are hereby notified that any dissemination, distribution or copying of this message and/or attachments is strictly prohibited. The company accepts no liability for any damage caused by any virus transmitted by this email. Furthermore, the company does not warrant a proper and complete transmission of this information, nor does it accept liability for any delays. If you have received this message in error, please contact the sender and delete the message. Thank you.

==================================================================== Companion Site: J2EE BluePrints: List Archive: Unsubscribing: email "signoff J2EEPATTERNS-INTEREST" to
©2008 - Jax Systems, LLC, U.S.A.