}
public PreparedStatement getCacheForCollectionAndMapOperation(Session session, Cache<StatementCacheKey,
PreparedStatement> dynamicPSCache, PersistentStateHolder context, PropertyMeta pm, DirtyCheckChangeSet changeSet) {
final Class<Object> entityClass = context.getEntityClass();
CollectionAndMapChangeType changeType = changeSet.getChangeType();
log.trace("Get cache for operation {} on entity class {} and property {}", changeType.name(),
entityClass, pm.getPropertyName());
StatementCacheKey cacheKey = new StatementCacheKey(changeType.cacheType(), Sets.newHashSet(pm.getPropertyName()), entityClass, context.getOptions());
PreparedStatement ps = dynamicPSCache.getIfPresent(cacheKey);
if (ps == null) {
ps = generator.prepareCollectionAndMapUpdate(session, context.getEntityMeta(), changeSet, context.getOptions());
dynamicPSCache.put(cacheKey, ps);