Saturday, March 13, 2010

Two Entities to One Table mapping

The picture below shows how two entities can be mapped to one single table -


Two Tables to One Entity mapping

The picture below shows how two table can be mapped to one single entity -

Entity Relationship Cascade

The table below shows the Entity Manager API used for cascading when you want to save entity relationship

Friday, March 12, 2010

Entity Manager Merge() Vs Persist()

Like every one knows Persist is used to create a new entry and merge is normally used to update an already existing entry but the confusion begins when we realize that merge can also be used to create a new entry as well.

So the question is why do we have persist when merge can do both update and create entries?

Here it goes -

1) Performance and Memory
Persist will just dump the entity into the database but merge will have to first figure out if this entry exists in the database for it to make out if it is a create or a update scenario. Secondly merge will copy the passed object and will save the copied object into the database, so if the entity relationship is complex this copy procedure is more time consuming and a lil memory intensive.

2) RBAC
Some roles can only update few entries and may not be allowed to create new entries or viceversa, so to have a seggregation we have seperate apis for persist and merge.