IMPROVED: checkUniqueness supports queryCache and skipClean #3041
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Hello Rob, with #1303 I implemented the checkUniqueness method, that we use in validation to verify that a new or modified bean does not violate unique constraints of the database.
This is neccessary to provide good user feedback in our UI
As already mentioned in #1303, this could be a performance killer, especially if you do a mass import/update of some entities, where unique constraints are involved. To minimize this, I tried to do two improvements
skipClean
if you load a bean from database and do not touch the unique properties, they need not to be validateduseQueryCache
I use anexists
query instead offindCount
as this may be slightly faster. Adittionally I enabe the queryCache on that query. This eliminates subsequent DB hits if the bean gets validated multiple times