/**
*
*/
public void setImpl(PropertySetItem item, boolean isUpdate) {
Session session = null;
String entityNameIdKey = "" + item.getEntityName() + "_" + item.getEntityId();
logger.info("setImpl....:" + entityNameIdKey);
logger.info("setImpl....:" + item.getKey() + "=" + item.getStringVal());
Map<String,Object> keyMap = entityNameIdKeyMap.get(entityNameIdKey);
Map<String,Object> valueMap = entityNameIdValueMap.get(entityNameIdKey);
//logger.info("entityNameIdValueMap:" + entityNameIdValueMap);
//logger.info("valueMap:" + valueMap);
if(valueMap != null)
{
//logger.info("Removing :" + item.getKey());
valueMap.remove(item.getKey());
}
if(keyMap != null)
{
//logger.info("Removing knowledge of " + item.getKey() + " so that it will get search for in the database");
if(keyMap.containsKey(item.getKey()))
{
keyMap.remove(item.getKey());
//logger.info("Rereading object...");
findByKey(item.getEntityName(), item.getEntityId(), item.getKey());
}
else
{
keyMap.put(item.getKey(), true);
//logger.info("Rereading object...");
findByKey(item.getEntityName(), item.getEntityId(), item.getKey());
}
}
try
{
session = this.sessionFactory.openSession();
if (isUpdate) {
session.update(item);
} else {
session.save(item);
}
session.flush();
} catch (HibernateException he) {
throw new PropertyException("Could not save key '" + item.getKey() + "':" + he.getMessage());
} finally {
try {
if (session != null) {
if (!session.connection().getAutoCommit()) {
session.connection().commit();
}
session.close();
}
} catch (Exception e) {
}
}