JPA Method
in jakarta.persistence.EntityManager

void refresh(
  Object entity, 
  LockModeType lockMode
)


Refresh the state of the given managed entity instance from the database, overwriting unflushed changes made to the entity, if any, and obtain the given plain. This operation cascades to every entity related by an association marked cascade=REFRESH.

If the lock mode type is pessimistic and the entity instance is found but cannot be locked:

Parameters:
entity - a managed entity instance
lockMode - lock mode
Throws:
IllegalArgumentException - if the instance is not an entity or if the entity is not managed
TransactionRequiredException - if invoked on a container-managed entity manager of type {@link PersistenceContextType#TRANSACTION} when there is no transaction; if invoked on an extended entity manager when there is no transaction and a lock mode other than {@link LockModeType#NONE} was specified; or if invoked on an extended entity manager that has not been joined to the current transaction and any lock mode other than {@code NONE} was specified
EntityNotFoundException - if the entity no longer exists in the database
PessimisticLockException - if pessimistic locking fails and the transaction is rolled back
LockTimeoutException - if pessimistic locking fails and only the statement is rolled back
PersistenceException - if an unsupported lock call is made
Since:
JPA 2.0