code: @Override
      public Map<String, String> getProperties(String pattern, Character escape) throws Exception {
          StringBuilder find = new StringBuilder(62)
                          .append("SELECT p.ID,p.VAL FROM Property p WHERE p.ID LIKE :p");
          if (escape != null)
              find.append(" ESCAPE :e");
  
          final boolean trace = TraceComponent.isAnyTracingEnabled();
          if (trace && tc.isEntryEnabled())
              Tr.entry(this, tc, "getProperties", pattern, escape, find);
  
          Map<String, String> map = new HashMap<String, String>();
          EntityManager em = getPersistenceServiceUnit().createEntityManager();
          try {
              TypedQuery<Object[]> query = em.createQuery(find.toString(), Object[].class);
              if (pattern != null) {
                  query.setParameter("p", pattern);
                  if (escape != null)
                      query.setParameter("e", escape);
              }
              List<Object[]> results = query.getResultList();
              for (Iterator<Object[]> it = results.iterator(); it.hasNext();) {
                  Object[] row = it.next();
                  map.put((String) row[0], (String) row[1]);
              }
          } finally {
              em.close();
          }
  
          if (trace && tc.isEntryEnabled())
              Tr.exit(this, tc, "getProperties", map.size() < 20 ? map : map.size());
          return map;
      }
docs: {@inheritDoc}