private HashMap<String, HashMap<String, Object>> updateProc( HashMap<String, Object> params, HttpServletRequest request, Session session, Login login) throws Exception { @SuppressWarnings("unused") String screen = request.getParameter("screen"); Map<String, Object> updateInput = preProc(params); UserTable upd = null; try { upd = BeanUtil.copyMapToNewBean(updateInput, UserTable.class); } catch (Exception e) { ServiceUtil.mapToNewBeanExceptionAnalyze(e); } UserTable dbUserTable = em.find(UserTable.class, upd.getId()); if (dbUserTable == null) { throw new SystemException("id:" + upd.getId().toString() + " が見つかりません"); } if (!(upd.getTableName().equals(dbUserTable.getTableName()) && upd.getKey1().equals(dbUserTable.getKey1()) && upd.getKey2().equals(dbUserTable.getKey2())) && userTableCodeDupCheck(upd)) { return DBFluteUtil.setErrorMessage("このDataは既に使用されています。", params); } BeanUtil.copyBeanToBean(upd, dbUserTable, CopyOptionsUtil.excludeNull()); em.merge(dbUserTable); Map<String, Object> map = null; map = entityToMap(upd); return DBFluteUtil.setFetchResult(map, params); }
private HashMap<String, HashMap<String, Object>> deleteProc( HashMap<String, Object> params, HttpServletRequest request, Session session, Login login) throws Exception { BigDecimal bid = (BigDecimal) params.get("data"); Integer id = bid.intValue(); UserTable delUserTable = em.find(UserTable.class, id); if (delUserTable == null) { throw new SystemException("id:" + id.toString() + " が見つかりません"); } delUserTable.setDelFlag(getDelFlagMaxValue(delUserTable) + 1); em.merge(delUserTable); return DBFluteUtil.setFetchResult(entityToMap(delUserTable), params); }
private boolean userTableCodeDupCheck(UserTable newEntity) { List<UserTable> sysTableList = em.createQuery( "From UserTable where key1 = :key1 and key2 = :key2 and tableName = :tableName and delFlag = :delFlag", UserTable.class) .setParameter("key1", newEntity.getKey1()) // enableEmptyStringQuery FIXME .setParameter("key2", newEntity.getKey2()) // enableEmptyStringQuery .setParameter("tableName", newEntity.getTableName()) .setParameter("delFlag", 0) .getResultList(); return (sysTableList.size() > 0); }
private int getDelFlagMaxValue(final UserTable del) { Integer delFlagMax = em.createQuery( "select max(delFlag) From UserTable where tableName = :tableName and key1 = :key1 and key2 = :key2", Integer.class) .setParameter("tableName", del.getTableName()) .setParameter("key1", del.getKey1()) .setParameter("key2", del.getKey2()) .getSingleResult(); if (delFlagMax != null) { return delFlagMax; } return 1; }