Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 4058550
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 20, 20262026-05-20T15:05:37+00:00 2026-05-20T15:05:37+00:00

I am new to use optimistic locking mechanism – I am using hibernate (in

  • 0

I am new to use “optimistic locking” mechanism – I am using hibernate (in Jboss) and Container Managed Transaction (CMT).
I want to handle the scenario when, between my entity-read and entity-update someone else updates the same entity (i.e. row) in DB.
In such case I want to throw exception..

I have annotated my entity with @Version – like

@Version
private Long version;

Now, I am confused if this is enough for version management or I need to explicitly call
the EntityManager.lock() api like

  {
    .
    .
    final QueryDTO queryDTO = entityManager.find(QueryDTO.class, id);
    entityManager.lock(queryDTO, LockModeType.READ);
    queryDTO.setStatus(updatedStatus);
    entityManager.persist(queryDTO);
  }

Thanks in advance,

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-20T15:05:37+00:00Added an answer on May 20, 2026 at 3:05 pm

    You don’t need explicit locks (pessimistic locking) at all when using optimistic locking via @Version. When the entity is being updated to database, something like the following query will take place:

    UPDATE QueryDTO SET status=<updated status>, ...other values..., version=100 WHERE id=<id> AND version=99

    If the update fails (someone/something else has changed the data and version), you’ll get OptimisticLockException (Since you’re using EntityManager, I assume this is about JPA, in “raw” Hibernate it could have been something like StaleStateException).

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I want to use the new combobox control of the Ajax control Toolkit. But
I want to use new .Net framework 4.0 feature Configuration-Based Activation. I wrote that
I am new to use Google Spreadsheet APIs. I want to retrieve the list
I'm new to JQuery and so far I'm using prototype. But now I want
I am building a new web app and I am using Spring, JPA/Hibernate, and
I am trying to create a reusable javascript object (I want to use new).
I want run %systemroot%\System32\reg.exe this file to do something, but when I use new
I want to use new graph api for invite to events like, EVENT_ID/invited/USER_ID1,USER_ID2 But
Iam new to use protobuf. Am using protobuf library in Linux-C. Is there any
I am using PDF::Reuse to write a new pdf: use PDF::Reuse; prFile( $copyPdf );

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.