public User store(User user) {

    UserRecord record = getEntityManager().find(UserRecord.class, user.getId());

    try {
      getEntityManager().getTransaction().begin();

      if (record != null) {

        user.setStatusCode(IUsersManager.STATUS_ERROR);
        user.setStatus(user.getId() + " 使用者帳號已存在!");

      } else {

        record = new UserRecord();
        record.setUserId(user.getId());
        record.setPassword(user.getPassword());
        record = parseParameters(record, user.getTicket());
        getEntityManager().persist(record);

        user.setStatusCode(IUsersManager.STATUS_OK);
        user.setStatus(" 使用者註冊完成. ");
      }

    } catch (Throwable e) {
      e.printStackTrace();
      user.setStatusCode(IUsersManager.STATUS_ERROR);
      user.setStatus(" 使用者註冊處理出現錯誤!! - " + e.getMessage());
    } finally {
      getEntityManager().getTransaction().commit();
    }

    return user;
  }
  public String getPassword(String id) {

    UserRecord record = getEntityManager().find(UserRecord.class, id);

    if (record != null) {
      return record.getPassword();
    }

    return null;
  }
  private UserRecord parseParameters(UserRecord record, String parameters) {

    if (parameters == null) {
      return record;
    }

    StringTokenizer tokenizer = new StringTokenizer(parameters, ",");

    while (tokenizer.hasMoreTokens()) {
      String aToken = tokenizer.nextToken();
      if ("name".equals(aToken.substring(0, aToken.indexOf('=')))) {
        record.setName(aToken.substring(aToken.indexOf('=') + 1));
      }
      if ("mobile".equals(aToken.substring(0, aToken.indexOf('=')))) {
        record.setMobile(aToken.substring(aToken.indexOf('=') + 1));
      }
      if ("phone".equals(aToken.substring(0, aToken.indexOf('=')))) {
        record.setPhone(aToken.substring(aToken.indexOf('=') + 1));
      }
      if ("fax".equals(aToken.substring(0, aToken.indexOf('=')))) {
        record.setFax(aToken.substring(aToken.indexOf('=') + 1));
      }
      if ("address".equals(aToken.substring(0, aToken.indexOf('=')))) {
        record.setAddress(aToken.substring(aToken.indexOf('=') + 1));
      }
      if ("eMail".equals(aToken.substring(0, aToken.indexOf('=')))) {
        record.seteMail(aToken.substring(aToken.indexOf('=') + 1));
      }
    }

    return record;
  }