Skip to main content

Hibernate session.merge(persistingObject) Vs session.saveOrUpdate(persistingObject)

Hibernate provide two techniques to deal with save and update functionality,
As per those techniques it first checks the instance in db, if
It is already persisted in that database, if that is the case then it
will simply persist the updated fields into DB otherwise it will persist
the new instance in to DB.

session.saveOrUpdate(persistingInstance):It also persist the new instance in to DB
and update the already persisted instances.
Insert the data if the primary key is not exist.

Problem:In some scenario's you might face the issue of
NonUniqueObjectException : message
"a different object with the same identifier value was
already associated with the session."

Technically before persisting in to db it first check in to the Hibernate cache,
and by any reason if that
object is present in cache then you will get the above exception.

So by remedy of the above issue we can use session.merge(persistingObject):
It is directly checking in to your database not in Hibernate cache,
so the above error will never ever arise.

Recommendation
:session.merge();

Comments

Popular posts from this blog

JSF Lifecycle Phases

JSF Lifecycle Phases JSF follows MVC design pattern to handle request-response process. Basically JSF handles three types of requests. Non-Faces Request Generates Faces Response Faces Request Generates Non-Faces Response Faces Request Generates Faces Response In another case of course non-jsf to non-jsf is there but in this case there is no involvement of JSF action here, so this is not a part of jsf lifecycle process. A JavaServer Faces page is represented by a tree of UI components, called a view . When a client makes a request for the page, the life cycle starts. During the life cycle, the JavaServer Faces implementation must build the view while considering state saved from a previous submission of the page. When the client submits a page, the JavaServer Faces implementation must perform several tasks, such as validating the data input of components in the view and converting input data to types specified on the server side. The JavaServer Faces implementation performs a...

Hibernate Reverse Engineering

Hibernate Revers enginering is the process of creating hibernate mapping files and pojo classes from an exising database tables.It has been explicitly achived by using HIbernate Tools. In Eclipse IDE we have to put the hibernate tool in our eclipse version. In net beans 6.8 it is by defaultly avialable to you. Fid below the handling of the required hibernate tool on different IDE's. Reveres Engineering using Net Beans Ide

Flash Lite Application Set Up

Steps to develop an mobile application on flash lite and deploy the same on some device. Step 1: Download Adobe Flash CS4 from net step 2 : Follow the instructions to execute the Adobe flash set up. After every thing installed successfully, follow the below instructions to develop your first Flash Lite Application Hello Mobile World: Creating Your First Flash Lite Project This section contains step-by-step instructions to walk you through the creation of your first Flash Lite Project. This section assumes that you have downloaded and installed Flash CS3 Professional which includes Adobe Device Central. 1.Start Flash CS3 Professional 2.File > New > Flash File (Mobile) 3.Adobe Device Central starts up to allow you to choose the main target device 4.In the 'Device Sets' panel choose 'Flash Lite 2.1 32 240x320'. This is the generic mobile device profile provided by Adobe for a Flash Lite 2.1 device. 5.Click the 'Create' button at the bottom right of Device Ce...