Navigation Menu

Skip to content

Instantly share code, notes, and snippets.

@AdamBien
Created January 10, 2018 08:18
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save AdamBien/dce90e8d7162c06ca3395f9a9ceb7bf1 to your computer and use it in GitHub Desktop.
Save AdamBien/dce90e8d7162c06ca3395f9a9ceb7bf1 to your computer and use it in GitHub Desktop.
47thAirhacksQ&A.md
@vanuatoo
Copy link

vanuatoo commented Feb 5, 2018

What is your approach to this scenario:

There is an Entity with columns: ID and Name. Name is annotated as @column(unique = true)

There is a REST Resource which injects session bean.
POST Request is sent to REST Resource which invokes business method in a session bean.
In a session bean there is a line: em.persist(bean);

The goal is to throw business exception from the session bean when Constraint Violation happens in the database but the exception is not thrown unless you put em.flush(); after em.persist();

Is putting em.flush() a correct approach?
Another approach would be to first find an object with the same Name, but there is still a chance Constraint Violation happens in a race condition.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment