public void put(String name, String value, String readPerm, String writePerm) { SysConfig cfg; if (prefix != null) name = prefix + name; try { boolean autoCommit = false; Transaction tx = db.session().getTransaction(); if (tx == null || tx.getStatus().isNotOneOf(TransactionStatus.ACTIVE)) { tx = db.session().beginTransaction(); autoCommit = true; } cfg = (SysConfig) db.session().get(SysConfig.class, name); boolean saveIt = false; if (cfg == null) { cfg = new SysConfig(); cfg.setId(name); saveIt = true; } cfg.setReadPerm(readPerm); cfg.setWritePerm(writePerm); cfg.setValue(value); if (saveIt) db.session().save(cfg); if (autoCommit) tx.commit(); } catch (HibernateException e) { db.getLog().warn(e); } }