List of usage examples for org.hibernate.type TypeHelper disassemble
public static Serializable[] disassemble(final Object[] row, final Type[] types, final boolean[] nonCacheable, final SharedSessionContractImplementor session, final Object owner)
From source file:com.corundumstudio.hibernate.dsc.DynamicQueryCache.java
License:Apache License
public void addResult(Map<String, Object> queryParams, Object queryResult, boolean uniqueResult, SessionImplementor session) {/*from www.j a v a 2s . c o m*/ QueryCacheValue entry = getQueryCacheTrasformed(queryParams); if (entry == null) { return; } List<Object> cacheable = (List<Object>) getRegion().get(entry.getKey()); if (cacheable == null) { return; } if (uniqueResult) { Object ts = cacheable.get(0); cacheable.clear(); cacheable.add(ts); } if (entry.getReturnTypes().length == 1) { Serializable cacheObject = entry.getReturnTypes()[0].disassemble(queryResult, session, null); cacheable.add(cacheObject); } else { Serializable[] cacheObject = TypeHelper.disassemble((Object[]) queryResult, entry.getReturnTypes(), null, session, null); cacheable.add(cacheObject); } getRegion().put(entry.getKey(), cacheable); }
From source file:com.corundumstudio.hibernate.dsc.DynamicQueryCache.java
License:Apache License
public void removeResult(Map<String, Object> queryParams, Object queryResult, SessionImplementor session) { QueryCacheValue entry = getQueryCacheTrasformed(queryParams); if (entry == null) { return;// ww w.ja v a 2 s.c o m } List<Object> cacheList = (List<Object>) getRegion().get(entry.getKey()); if (cacheList == null) { return; } if (entry.getReturnTypes().length == 1) { Serializable deletedObject = entry.getReturnTypes()[0].disassemble(queryResult, session, null); cacheList.remove(deletedObject); } else { Serializable[] deletedObject = TypeHelper.disassemble((Object[]) queryResult, entry.getReturnTypes(), null, session, null); for (Iterator<Object> iterator = cacheList.iterator(); iterator.hasNext();) { Serializable[] object = (Serializable[]) iterator.next(); if (Arrays.equals(object, deletedObject)) { iterator.remove(); } } } getRegion().put(entry.getKey(), cacheList); }