protected <E extends Object> void assertOnMerge(EntityManager em, Class clazz, E e, String oldName, String newName,
String fieldName)
{
CriteriaBuilder criteriaBuilder = em.getCriteriaBuilder();
CriteriaQuery<E> query = criteriaBuilder.createQuery(clazz);
Root<E> from = query.from(clazz);
query.select(from.alias("p"));
query.where(criteriaBuilder.equal(from.get(fieldName), oldName));
TypedQuery<E> q = em.createQuery(query);
List<E> results = q.getResultList();
Assert.assertNotNull(results);
Assert.assertEquals(2, results.size());
criteriaBuilder = em.getCriteriaBuilder();
query = criteriaBuilder.createQuery(clazz);
from = query.from(clazz);
query.select(from.alias("p"));
query.where(criteriaBuilder.equal(from.get(fieldName), newName));
q = em.createQuery(query);
results = q.getResultList();
Assert.assertNotNull(results);
Assert.assertEquals(1, results.size());
Assert.assertNotSame(oldName, getPersonName(e, results.get(0)));
Assert.assertEquals(newName, getPersonName(e, results.get(0)));
}