@Test public void testPuts() { EntityManagerSimpleJPA em = (EntityManagerSimpleJPA) factory.createEntityManager(); MyTestObject object = new MyTestObject(); object.setName("Scooby doo"); object.setAge(100); Date now = new Date(); object.setBirthday(now); em.persist(object); System.out.println(em.getTotalOpStats()); Assert.assertEquals(1, em.getTotalOpStats().getPuts()); object.setId(null); em.persist(object); Assert.assertEquals(2, em.getTotalOpStats().getPuts()); em.close(); // New EntityManager and same op em = (EntityManagerSimpleJPA) factory.createEntityManager(); object = new MyTestObject(); object.setName("Scooby doo"); object.setAge(100); object.setBirthday(now); em.persist(object); System.out.println(em.getTotalOpStats()); Assert.assertEquals(1, em.getTotalOpStats().getPuts()); Assert.assertEquals(3, em.getGlobalOpStats().getPuts()); em.close(); }
@Test public void testPutQueryDelete() throws ExecutionException, InterruptedException { int numItems = 1; String x; EntityManagerSimpleJPA em = (EntityManagerSimpleJPA) factory.createEntityManager(); PerformanceTestObject o = new PerformanceTestObject(); o.setS1("first to create domain"); em.persist(o); StopWatch stopWatch = new StopWatch(); String s1a = "attribute1"; String s2a = "attribute2"; Future<PerformanceTestObject> lastFuture = null; stopWatch.start(); for (int i = 0; i < numItems; i++) { o = new PerformanceTestObject(); o.setS1(s1a); o.setS2(s2a); lastFuture = em.persistAsync(o); } lastFuture.get(); // not 100% accurate, but good enough stopWatch.stop(); System.out.println( "puts duration=" + stopWatch.getTime() + ", " + em.getTotalOpStats().getPuts() + " items put."); Thread.sleep(5000); stopWatch.reset(); stopWatch.start(); Query query = em.createQuery("select o from PerformanceTestObject o"); List<PerformanceTestObject> resultList = query.getResultList(); System.out.println("iterating result list..."); int i = 0; for (PerformanceTestObject performanceTestObject : resultList) { i++; if (i % 100 == 0) { System.out.println(i); } } stopWatch.stop(); System.out.println( "query ALL duration=" + stopWatch.getTime() + ", " + em.getTotalOpStats().getGets() + " items got."); stopWatch.reset(); stopWatch.start(); System.out.println("Deleting ALL..."); for (PerformanceTestObject performanceTestObject : resultList) { lastFuture = em.removeAsync(o); } lastFuture.get(); stopWatch.stop(); System.out.println( "delete duration=" + stopWatch.getTime() + ", " + resultList.size() + " items deleted."); System.out.println("sleeping..."); Thread.sleep(30000); em.close(); }