// Create
DeployStatus entity = make();
save(entity , entityManager);
entityManager.flush();
entityManager.clear();
// READ
DeployStatus saved = entityManager.find(DeployStatus.class , entity.getDeployId());
assertNotNull(saved);
assertEquals(entity, saved);// expected, actuall
// Update
entity.setTargetAssetSeqno(1201L);
entity = entityManager.merge(entity);
entityManager.flush();
entityManager.clear();// 메모리 상에서 지워져서 entity manager로 부터 detach된 상태
DeployStatus updated = entityManager.find(DeployStatus.class , entity.getDeployId());
assertEquals(entity, updated );
//Delete
delete(updated, entityManager);
assertNull(entityManager.find(DeployStatus.class, entity.getDeployId()));
entityManager.flush();
entityManager.clear();
또한 위 annotation을 추가시켜주지 않는다면 객체의 field값들이 모두 같다고 해도 hash value를 비교하지 못한다.