下面列出了怎么用org.hibernate.stat.NaturalIdCacheStatistics的API类实例代码及写法,或者点击链接到github查看源代码。
/**
* @param sesFactory Session factory.
* @param nameToId Name-ID mapping.
* @param absentNames Absent entities' names.
*/
private void assertNaturalIdCache(SessionFactory sesFactory, Map<String, Integer> nameToId, String... absentNames) {
sesFactory.getStatistics().clear();
NaturalIdCacheStatistics stats =
sesFactory.getStatistics().getNaturalIdCacheStatistics(NATURAL_ID_REGION);
long hitBefore = stats.getHitCount();
long missBefore = stats.getMissCount();
final Session ses = sesFactory.openSession();
try {
for (Map.Entry<String, Integer> e : nameToId.entrySet())
assertEquals((int)e.getValue(), ((Entity)ses.bySimpleNaturalId(Entity.class).load(e.getKey())).getId());
for (String name : absentNames)
assertNull((ses.bySimpleNaturalId(Entity.class).load(name)));
assertEquals(nameToId.size() + hitBefore, stats.getHitCount());
assertEquals(absentNames.length + missBefore, stats.getMissCount());
}
finally {
ses.close();
}
}
/**
* @param sesFactory Session factory.
* @param nameToId Name-ID mapping.
* @param absentNames Absent entities' names.
*/
private void assertNaturalIdCache(SessionFactory sesFactory, Map<String, Integer> nameToId, String... absentNames) {
sesFactory.getStatistics().clear();
NaturalIdCacheStatistics stats =
sesFactory.getStatistics().getNaturalIdCacheStatistics(NATURAL_ID_REGION);
long hitBefore = stats.getHitCount();
long missBefore = stats.getMissCount();
final Session ses = sesFactory.openSession();
try {
for (Map.Entry<String, Integer> e : nameToId.entrySet())
assertEquals((int)e.getValue(), ((Entity)ses.bySimpleNaturalId(Entity.class).load(e.getKey())).getId());
for (String name : absentNames)
assertNull((ses.bySimpleNaturalId(Entity.class).load(name)));
assertEquals(nameToId.size() + hitBefore, stats.getHitCount());
assertEquals(absentNames.length + missBefore, stats.getMissCount());
}
finally {
ses.close();
}
}
public NaturalIdCacheStatistics getNaturalIdCacheStatistics(
String regionName) {
return null;
}