Session: How to Evict Single Entity from a Session

We can clear all session operations and stop tracking of all entities by the using clear method, but sometimes there is need to only to do a cleanup only for one entity. For this purpose evict was introduced.

Syntax

<T> void evict(T entity);
Parameters
entity T Instance of an entity that will be evicted

Example I

Employee employee1 = new Employee();
employee1.setFirstName("John");
employee1.setLastName("Doe");

Employee employee2 = new Employee();
employee2.setFirstName("Joe");
employee2.setLastName("Shmoe");

session.store(employee1);
session.store(employee2);

session.advanced().evict(employee1);

session.saveChanges(); // only 'Joe Shmoe' will be saved

Example II

Employee employee = session.load(Employee.class, "employees/1-A");//loading from serer
employee = session.load(Employee.class, "employees/1-A"); // no server call
session.advanced().evict(employee);
employee = session.load(Employee.class, "employees/1-A"); // loading form server