use of org.hibernate.stat.SecondLevelCacheStatistics in project hibernate-orm by hibernate.
the class EhCacheTest method testEmptySecondLevelCacheEntry.
@Test
public void testEmptySecondLevelCacheEntry() throws Exception {
sessionFactory().getCache().evictEntityRegion(Item.class.getName());
Statistics stats = sessionFactory().getStatistics();
stats.clear();
SecondLevelCacheStatistics statistics = stats.getSecondLevelCacheStatistics(Item.class.getName());
Map cacheEntries = statistics.getEntries();
assertEquals(0, cacheEntries.size());
}
use of org.hibernate.stat.SecondLevelCacheStatistics in project hibernate-orm by hibernate.
the class ReadWriteTest method testAddNewOneToManyElementNoInitFlushInitLeaveCacheConsistent.
@Test
public void testAddNewOneToManyElementNoInitFlushInitLeaveCacheConsistent() throws Exception {
Statistics stats = sessionFactory().getStatistics();
stats.clear();
SecondLevelCacheStatistics cStats = stats.getSecondLevelCacheStatistics(Item.class.getName() + ".items");
ByRef<Long> itemId = new ByRef<>(null);
saveItem(itemId);
// create an element for item.bagOfItems
Item itemElement = new Item();
itemElement.setName("element");
itemElement.setDescription("element item");
withTxSession(s -> {
Item item = s.get(Item.class, itemId.get());
assertFalse(Hibernate.isInitialized(item.getBagOfItems()));
item.addItemToBag(itemElement);
assertFalse(Hibernate.isInitialized(item.getBagOfItems()));
s.persist(itemElement);
s.flush();
Hibernate.initialize(item.getBagOfItems());
markRollbackOnly(s);
});
withTxSession(s -> {
Item item = s.get(Item.class, itemId.get());
Hibernate.initialize(item.getBagOfItems());
assertTrue(item.getBagOfItems().isEmpty());
s.delete(item);
});
}
use of org.hibernate.stat.SecondLevelCacheStatistics in project hibernate-orm by hibernate.
the class ReadWriteTest method testAddNewOneToManyElementInitFlushLeaveCacheConsistent.
@Test
@TestForIssue(jiraKey = "HHH-9231")
public void testAddNewOneToManyElementInitFlushLeaveCacheConsistent() throws Exception {
Statistics stats = sessionFactory().getStatistics();
stats.clear();
SecondLevelCacheStatistics cStats = stats.getSecondLevelCacheStatistics(Item.class.getName() + ".items");
ByRef<Long> itemId = new ByRef<>(null);
saveItem(itemId);
// create an element for item.itsms
Item itemElement = new Item();
itemElement.setName("element");
itemElement.setDescription("element item");
withTxSession(s -> {
Item item = s.get(Item.class, itemId.get());
assertFalse(Hibernate.isInitialized(item.getItems()));
item.addItem(itemElement);
assertTrue(Hibernate.isInitialized(item.getItems()));
s.persist(itemElement);
s.flush();
markRollbackOnly(s);
});
withTxSession(s -> {
Item item = s.get(Item.class, itemId.get());
Hibernate.initialize(item.getItems());
assertTrue(item.getItems().isEmpty());
s.delete(item);
});
}
use of org.hibernate.stat.SecondLevelCacheStatistics in project hibernate-orm by hibernate.
the class ReadWriteTest method testAddNewOneToManyElementNoInitFlushLeaveCacheConsistent.
@Test
@TestForIssue(jiraKey = "HHH-9231")
public void testAddNewOneToManyElementNoInitFlushLeaveCacheConsistent() throws Exception {
Statistics stats = sessionFactory().getStatistics();
stats.clear();
SecondLevelCacheStatistics cStats = stats.getSecondLevelCacheStatistics(Item.class.getName() + ".items");
ByRef<Long> itemId = new ByRef<>(null);
saveItem(itemId);
// create an element for item.bagOfItems
Item itemElement = new Item();
itemElement.setName("element");
itemElement.setDescription("element item");
withTxSession(s -> {
Item item = s.get(Item.class, itemId.get());
assertFalse(Hibernate.isInitialized(item.getItems()));
item.addItemToBag(itemElement);
assertFalse(Hibernate.isInitialized(item.getBagOfItems()));
s.persist(itemElement);
s.flush();
markRollbackOnly(s);
});
withTxSession(s -> {
Item item = s.get(Item.class, itemId.get());
Hibernate.initialize(item.getItems());
assertTrue(item.getItems().isEmpty());
s.delete(item);
});
}
use of org.hibernate.stat.SecondLevelCacheStatistics in project hibernate-orm by hibernate.
the class BulkOperationsTest method testBulkOperations.
@Test
public void testBulkOperations() throws Throwable {
boolean cleanedUp = false;
try {
createContacts();
List<Integer> rhContacts = getContactsByCustomer("Red Hat");
assertNotNull("Red Hat contacts exist", rhContacts);
assertEquals("Created expected number of Red Hat contacts", 10, rhContacts.size());
SecondLevelCacheStatistics contactSlcs = sessionFactory().getStatistics().getSecondLevelCacheStatistics(Contact.class.getName());
assertEquals(20, contactSlcs.getElementCountInMemory());
assertEquals("Deleted all Red Hat contacts", 10, deleteContacts());
assertEquals(0, contactSlcs.getElementCountInMemory());
List<Integer> jbContacts = getContactsByCustomer("JBoss");
assertNotNull("JBoss contacts exist", jbContacts);
assertEquals("JBoss contacts remain", 10, jbContacts.size());
for (Integer id : rhContacts) {
assertNull("Red Hat contact " + id + " cannot be retrieved", getContact(id));
}
rhContacts = getContactsByCustomer("Red Hat");
if (rhContacts != null) {
assertEquals("No Red Hat contacts remain", 0, rhContacts.size());
}
updateContacts("Kabir", "Updated");
assertEquals(0, contactSlcs.getElementCountInMemory());
for (Integer id : jbContacts) {
Contact contact = getContact(id);
assertNotNull("JBoss contact " + id + " exists", contact);
String expected = ("Kabir".equals(contact.getName())) ? "Updated" : "2222";
assertEquals("JBoss contact " + id + " has correct TLF", expected, contact.getTlf());
}
List<Integer> updated = getContactsByTLF("Updated");
assertNotNull("Got updated contacts", updated);
assertEquals("Updated contacts", 5, updated.size());
assertEquals(10, contactSlcs.getElementCountInMemory());
updateContactsWithOneManual("Kabir", "UpdatedAgain");
assertEquals(0, contactSlcs.getElementCountInMemory());
for (Integer id : jbContacts) {
Contact contact = getContact(id);
assertNotNull("JBoss contact " + id + " exists", contact);
String expected = ("Kabir".equals(contact.getName())) ? "UpdatedAgain" : "2222";
assertEquals("JBoss contact " + id + " has correct TLF", expected, contact.getTlf());
}
updated = getContactsByTLF("UpdatedAgain");
assertNotNull("Got updated contacts", updated);
assertEquals("Updated contacts", 5, updated.size());
} catch (Throwable t) {
cleanedUp = true;
cleanup(true);
throw t;
} finally {
// cleanup the db so we can run this test multiple times w/o restarting the cluster
if (!cleanedUp) {
cleanup(false);
}
}
}
Aggregations