0 Replies Latest reply on Nov 18, 2009 11:22 AM by Phil Haigh

    Modification to EntityQuery for 2nd level caching

    Phil Haigh Novice

      Scott Basinger has provided a helpful modification to EntityQuery to allow easy use of the 2nd level cache.

      This seems an ideal candidate to make it into future Seam releases - are there any objections from the Seam devs?

      Mods to EntityQuery createQuery method are:

      if (getHints() != null) {
        for (Map.Entry<String, Object> me : getHints().entrySet()) {
          if (me.getValue() instanceof String)
            query.setHint(me.getKey(), me.getValue());
          else if (me.getValue() instanceof Boolean) {
            Boolean value = (Boolean) me.getValue();
            query.setHint(me.getKey(), value.booleanValue());
          } else {
            throw new UnsupportedOperationException(
                "Query hint of type " + me.getValue().getClass()
                + " not supported.");

      which then allows:

      public MyQuery() {
        getHints().put("org.hibernate.cacheable", Boolean.TRUE);