use of javax.persistence.EntityManager in project hibernate-orm by hibernate.
the class SharedCacheModesTest method testEntityManagerCacheModes.
@Test
public void testEntityManagerCacheModes() {
EntityManager em;
Session session;
em = getOrCreateEntityManager();
session = ((HibernateEntityManager) em).getSession();
// defaults...
assertEquals(CacheStoreMode.USE, em.getProperties().get(AvailableSettings.SHARED_CACHE_STORE_MODE));
assertEquals(CacheRetrieveMode.USE, em.getProperties().get(AvailableSettings.SHARED_CACHE_RETRIEVE_MODE));
assertEquals(CacheMode.NORMAL, session.getCacheMode());
// overrides...
em.setProperty(AvailableSettings.SHARED_CACHE_STORE_MODE, CacheStoreMode.REFRESH);
assertEquals(CacheStoreMode.REFRESH, em.getProperties().get(AvailableSettings.SHARED_CACHE_STORE_MODE));
assertEquals(CacheMode.REFRESH, session.getCacheMode());
em.setProperty(AvailableSettings.SHARED_CACHE_STORE_MODE, CacheStoreMode.BYPASS);
assertEquals(CacheStoreMode.BYPASS, em.getProperties().get(AvailableSettings.SHARED_CACHE_STORE_MODE));
assertEquals(CacheMode.GET, session.getCacheMode());
em.setProperty(AvailableSettings.SHARED_CACHE_RETRIEVE_MODE, CacheRetrieveMode.BYPASS);
assertEquals(CacheRetrieveMode.BYPASS, em.getProperties().get(AvailableSettings.SHARED_CACHE_RETRIEVE_MODE));
assertEquals(CacheMode.IGNORE, session.getCacheMode());
em.setProperty(AvailableSettings.SHARED_CACHE_STORE_MODE, CacheStoreMode.USE);
assertEquals(CacheStoreMode.USE, em.getProperties().get(AvailableSettings.SHARED_CACHE_STORE_MODE));
assertEquals(CacheMode.PUT, session.getCacheMode());
em.setProperty(AvailableSettings.SHARED_CACHE_STORE_MODE, CacheStoreMode.REFRESH);
assertEquals(CacheStoreMode.REFRESH, em.getProperties().get(AvailableSettings.SHARED_CACHE_STORE_MODE));
assertEquals(CacheMode.REFRESH, session.getCacheMode());
}
use of javax.persistence.EntityManager in project hibernate-orm by hibernate.
the class CallbacksTest method testPrePersistOnCascade.
@Test
public void testPrePersistOnCascade() throws Exception {
EntityManager em = getOrCreateEntityManager();
em.getTransaction().begin();
Television tv = new Television();
RemoteControl rc = new RemoteControl();
em.persist(tv);
em.flush();
tv.setControl(rc);
tv.init();
em.flush();
assertNotNull(rc.getCreationDate());
em.getTransaction().rollback();
em.close();
}
use of javax.persistence.EntityManager in project hibernate-orm by hibernate.
the class CallbacksTest method testPostUpdateCollection.
@Test
@FailureExpected(message = "collection change does not trigger an event", jiraKey = "EJB-288")
public void testPostUpdateCollection() throws Exception {
// create a cat
EntityManager em = getOrCreateEntityManager();
Cat cat = new Cat();
em.getTransaction().begin();
cat.setLength(23);
cat.setAge(2);
cat.setName("Beetle");
cat.setDateOfBirth(new Date());
em.persist(cat);
em.getTransaction().commit();
// assert it is persisted
List ids = Cat.getIdList();
Object id = Cat.getIdList().get(ids.size() - 1);
assertNotNull(id);
// add a kitten to the cat - triggers PostCollectionRecreateEvent
int postVersion = Cat.postVersion;
em.getTransaction().begin();
Kitten kitty = new Kitten();
kitty.setName("kitty");
List kittens = new ArrayList<Kitten>();
kittens.add(kitty);
cat.setKittens(kittens);
em.getTransaction().commit();
assertEquals("Post version should have been incremented.", postVersion + 1, Cat.postVersion);
// add another kitten - triggers PostCollectionUpdateEvent.
postVersion = Cat.postVersion;
em.getTransaction().begin();
Kitten tom = new Kitten();
tom.setName("Tom");
cat.getKittens().add(tom);
em.getTransaction().commit();
assertEquals("Post version should have been incremented.", postVersion + 1, Cat.postVersion);
// delete a kitty - triggers PostCollectionUpdateEvent
postVersion = Cat.postVersion;
em.getTransaction().begin();
cat.getKittens().remove(tom);
em.getTransaction().commit();
assertEquals("Post version should have been incremented.", postVersion + 1, Cat.postVersion);
// delete and recreate kittens - triggers PostCollectionRemoveEvent and PostCollectionRecreateEvent)
postVersion = Cat.postVersion;
em.getTransaction().begin();
cat.setKittens(new ArrayList<Kitten>());
em.getTransaction().commit();
assertEquals("Post version should have been incremented.", postVersion + 2, Cat.postVersion);
em.close();
}
use of javax.persistence.EntityManager in project hibernate-orm by hibernate.
the class CallbacksTest method listenerAnnotation.
//Not a test since the spec did not make the proper change on listeners
public void listenerAnnotation() throws Exception {
EntityManager em = getOrCreateEntityManager();
Translation tl = new Translation();
em.getTransaction().begin();
tl.setInto("France");
em.persist(tl);
tl = new Translation();
tl.setInto("Bimboland");
try {
em.persist(tl);
em.flush();
fail("Annotations annotated by a listener not used");
} catch (IllegalArgumentException e) {
//success
} finally {
em.getTransaction().rollback();
em.close();
}
}
use of javax.persistence.EntityManager in project hibernate-orm by hibernate.
the class ParameterTest method testParameterInParameterList.
@Test
public void testParameterInParameterList() {
// Yes, this test makes no semantic sense. But the JPA TCK does it...
// it causes a problem on Derby, which does not like the form "... where ? in (?,?)"
// Derby wants one side or the other to be CAST (I assume so it can check typing).
EntityManager em = getOrCreateEntityManager();
em.getTransaction().begin();
CriteriaQuery<MultiTypedBasicAttributesEntity> criteria = em.getCriteriaBuilder().createQuery(MultiTypedBasicAttributesEntity.class);
criteria.from(MultiTypedBasicAttributesEntity.class);
criteria.where(em.getCriteriaBuilder().in(em.getCriteriaBuilder().parameter(Long.class, "p1")).value(em.getCriteriaBuilder().parameter(Long.class, "p2")).value(em.getCriteriaBuilder().parameter(Long.class, "p3")));
TypedQuery<MultiTypedBasicAttributesEntity> query = em.createQuery(criteria);
query.setParameter("p1", 1L);
query.setParameter("p2", 2L);
query.setParameter("p3", 3L);
query.getResultList();
em.getTransaction().commit();
em.close();
}
Aggregations