/* * (c) Copyright 2005-2012 JAXIO, www.jaxio.com * Source code generated by Celerio, a Jaxio product * Want to use Celerio within your company? email us at info@jaxio.com * Follow us on twitter: @springfuse * Template pack-backend-sd:src/test/java/repository/RepositoryWithRealSessionTest.e.vm.java */ package com.company.demo.repository; import static org.fest.assertions.Assertions.assertThat; import javax.persistence.EntityManager; import javax.persistence.PersistenceContext; import org.apache.log4j.Logger; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.context.ContextConfiguration; import org.springframework.test.context.junit4.SpringJUnit4ClassRunner; import org.springframework.transaction.annotation.Transactional; import com.google.common.collect.Sets; import com.company.demo.domain.LegacyPk; import com.company.demo.domain.Legacy; import com.company.demo.repository.LegacyGenerator; import com.company.demo.repository.LegacyRepository; /** * Integration test on {@link LegacyRepository} */ @RunWith(SpringJUnit4ClassRunner.class) @ContextConfiguration(locations = { "classpath*:spring/applicationContext-test.xml" }) @Transactional public class LegacyRepositoryWithRealSessionTest { @SuppressWarnings("unused") private static final Logger log = Logger.getLogger(LegacyRepositoryWithRealSessionTest.class); @PersistenceContext private EntityManager entityManager; @Autowired private LegacyRepository legacyRepository; @Autowired private LegacyGenerator legacyGenerator; @Test public void identityShouldBePreserved() { Legacy legacy = legacyGenerator.getLegacy(); // add it to a Set before saving (force equals/hashcode) Sets.newHashSet(legacy); legacyRepository.save(legacy); entityManager.flush(); // reload it from cache and check equality LegacyPk id = legacy.getLegacyPk(); assertThat(legacy).isEqualTo(legacyRepository.findOne(id)); // clear cache to force reload from db entityManager.clear(); // since you use a business key, equality must be preserved. assertThat(legacy).isEqualTo(legacyRepository.findOne(id)); } }