How to check if a record exists using JPA

If you just want to know whether the object exists, send a SELECT COUNT to your database. That will return 0 or 1.

The cost of the exception handling isn’t that big (unless you do that millions of times during a normal operation), so I wouldn’t bother.

But the code doesn’t really reflect your intention. Since getSingleResult() calls getResultList() internally, it’s clearer like so:

public boolean objExists(...) {
    return getResultList(...).size() == 1;
}

If you query by object id and you have caching enabled, that will become a simple lookup in the cache if the object has already been loaded.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)