aspose file tools*
The moose likes OO, Patterns, UML and Refactoring and the fly likes [ DAO ] A question Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login
JavaRanch » Java Forums » Engineering » OO, Patterns, UML and Refactoring
Bookmark "[ DAO ] A question" Watch "[ DAO ] A question" New topic
Author

[ DAO ] A question

Pho Tek
Ranch Hand

Joined: Nov 05, 2000
Posts: 761

In the DAO sample from pet store, the DAO
class signature reads like this:

My question: why is it that the create method
returns a CustomerVO (Value object)? Is the
returned CustomerVO the same the as the one
passed into create() ? If not, what's the difference. Thanks.
Pho


Regards,

Pho
Chris Schneider
Greenhorn

Joined: Apr 24, 2002
Posts: 1
One point might be to include extra data that was added while creation of the VO in the database... Like IDs (Primary-Key) for example that are auto-generated... By returning the freshly added VO out of the create-method you would have an easy way of accessing these extra values within your calling code...
Best Regards,
Chris
Pho Tek
Ranch Hand

Joined: Nov 05, 2000
Posts: 761

Chris,
If primary keys (e.g. surrogate keys) are auto generated during the insert, does it imply that I would need to do an additional select to compose the returned CustomerVO ? In informix (which is what I'm using); there is a feature to retrieve an auto generated key from an insert (without doing another round trip to the db server).
Thanks
Pho
ben munoz
Greenhorn

Joined: Jul 24, 2001
Posts: 5
How to get the primary key is most likely implementation specific. You can disable autogenerated primary keys for a table and insert your own primary key. Then you know what the primary key will be before you insert it. This method is cross-database, gives you more control, but is slightly more work to implement.
If your primary key is autogenerated you can 1) use vendor specific syntax to return the last inserted primary key like @@identity in TransactSQL or 2) use a select statement based on a 'date_added' column with other values just inserted.
Then set the primary key of your value object and return that.
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: [ DAO ] A question