[jboss-cvs] jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/dao ...

Christian Bauer christian at hibernate.org
Fri Apr 27 06:33:53 EDT 2007


  User: cbauer  
  Date: 07/04/27 06:33:53

  Modified:    examples/wiki/src/main/org/jboss/seam/wiki/core/dao   
                        WikiNodeFactory.java NodeDAO.java FeedDAO.java
  Log:
  Now deployable on 4.2 out-of-box (local Hibernate JARs) and optimized SQL and caching
  
  Revision  Changes    Path
  1.7       +17 -2     jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/dao/WikiNodeFactory.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: WikiNodeFactory.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/dao/WikiNodeFactory.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -b -r1.6 -r1.7
  --- WikiNodeFactory.java	22 Apr 2007 10:15:31 -0000	1.6
  +++ WikiNodeFactory.java	27 Apr 2007 10:33:53 -0000	1.7
  @@ -33,6 +33,7 @@
           try {
               return (Directory) entityManager
                       .createQuery("select d from Directory d where d.parent is null")
  +                    .setHint("org.hibernate.cacheable", true)
                       .getSingleResult();
           } catch (RuntimeException ex) {
               throw new RuntimeException("You need to INSERT at least one parentless directory into the database", ex);
  @@ -48,6 +49,7 @@
               return (Document) restrictedEntityManager
                       .createQuery("select d from Document d where d.id = :id")
                       .setParameter("id", wikiPreferences.getDefaultDocumentId())
  +                    .setHint("org.hibernate.cacheable", true)
                       .getSingleResult();
           } catch (EntityNotFoundException ex) {
           } catch (NoResultException ex) {
  @@ -62,8 +64,17 @@
       @Transactional
       public Directory loadWikiRootRestricted() {
           Directory wikiroot = (Directory) Component.getInstance("wikiRoot");
  +
           restrictedEntityManager.joinTransaction();
  -        return restrictedEntityManager.find(Directory.class, wikiroot.getId());
  +        try {
  +            return (Directory) restrictedEntityManager
  +                    .createQuery("select d from Directory d where d.id = :id")
  +                    .setParameter("id", wikiroot.getId())
  +                    .setHint("org.hibernate.cacheable", true)
  +                    .getSingleResult();
  +        } catch (RuntimeException ex) {
  +            throw new RuntimeException("You need to INSERT at least one parentless directory into the database", ex);
  +        }
       }
   
       @Factory(value = "memberArea", scope = ScopeType.CONVERSATION, autoCreate = true)
  @@ -75,6 +86,7 @@
               return (Directory) entityManager
                       .createQuery("select d from Directory d where d.id = :dirId and d.parent.parent is null")
                       .setParameter("dirId", memberAreaId)
  +                    .setHint("org.hibernate.cacheable", true)
                       .getSingleResult();
           } catch (RuntimeException ex) {
               System.out.println("######################### MESSAGE ###############################");
  @@ -92,7 +104,10 @@
           entityManager.joinTransaction();
           Map<String, LinkProtocol> linkProtocols = new TreeMap<String, LinkProtocol>();
           //noinspection unchecked
  -        List<Object[]> result = entityManager.createQuery("select lp.prefix, lp from LinkProtocol lp order by lp.prefix asc").getResultList();
  +        List<Object[]> result = entityManager
  +                .createQuery("select lp.prefix, lp from LinkProtocol lp order by lp.prefix asc")
  +                .setHint("org.hibernate.cacheable", true)
  +                .getResultList();
           for (Object[] objects : result) {
               linkProtocols.put((String)objects[0], (LinkProtocol)objects[1]);
           }
  
  
  
  1.15      +10 -0     jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/dao/NodeDAO.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: NodeDAO.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/dao/NodeDAO.java,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -b -r1.14 -r1.15
  --- NodeDAO.java	26 Apr 2007 15:11:52 -0000	1.14
  +++ NodeDAO.java	27 Apr 2007 10:33:53 -0000	1.15
  @@ -66,6 +66,7 @@
               return (Node) restrictedEntityManager
                       .createQuery("select n from Node n where n.id = :nodeId")
                       .setParameter("nodeId", nodeId)
  +                    .setHint("org.hibernate.cacheable", true)
                       .getSingleResult();
           } catch (EntityNotFoundException ex) {
           } catch (NoResultException ex) {
  @@ -85,6 +86,7 @@
                       .createQuery("select n from Node n where n.areaNumber = :areaNumber and n.wikiname = :wikiname")
                       .setParameter("areaNumber", areaNumber)
                       .setParameter("wikiname", wikiname)
  +                    .setHint("org.hibernate.cacheable", true)
                       .getSingleResult();
           } catch (EntityNotFoundException ex) {
           } catch (NoResultException ex) {
  @@ -100,6 +102,7 @@
                       .createQuery("select d from Document d where d.areaNumber = :areaNumber and d.wikiname = :wikiname")
                       .setParameter("areaNumber", areaNumber)
                       .setParameter("wikiname", wikiname)
  +                    .setHint("org.hibernate.cacheable", true)
                       .getSingleResult();
           } catch (EntityNotFoundException ex) {
           } catch (NoResultException ex) {
  @@ -115,6 +118,7 @@
                       .createQuery("select d from Directory d where d.areaNumber = :areaNumber and d.wikiname = :wikiname")
                       .setParameter("areaNumber", areaNumber)
                       .setParameter("wikiname", wikiname)
  +                    .setHint("org.hibernate.cacheable", true)
                       .getSingleResult();
           } catch (EntityNotFoundException ex) {
           } catch (NoResultException ex) {
  @@ -130,6 +134,7 @@
                       .createQuery("select d from Directory d where d.parent = :root and d.wikiname = :wikiname")
                       .setParameter("root", Component.getInstance("wikiRoot"))
                       .setParameter("wikiname", wikiname)
  +                    .setHint("org.hibernate.cacheable", true)
                       .getSingleResult();
           } catch (EntityNotFoundException ex) {
           } catch (NoResultException ex) {
  @@ -145,6 +150,7 @@
                       .createQuery("select d from Directory d where d.parent = :root and d.areaNumber = :areaNumber")
                       .setParameter("root", Component.getInstance("wikiRoot"))
                       .setParameter("areaNumber", areaNumber)
  +                    .setHint("org.hibernate.cacheable", true)
                       .getSingleResult();
           } catch (EntityNotFoundException ex) {
           } catch (NoResultException ex) {
  @@ -208,6 +214,7 @@
               return (Document) restrictedEntityManager
                       .createQuery("select d from Document d where d.id = :id")
                       .setParameter("id", documentId)
  +                    .setHint("org.hibernate.cacheable", true)
                       .getSingleResult();
           } catch (EntityNotFoundException ex) {
           } catch (NoResultException ex) {
  @@ -222,6 +229,7 @@
               return (Directory) restrictedEntityManager
                       .createQuery("select d from Directory d where d.id = :id")
                       .setParameter("id", directoryId)
  +                    .setHint("org.hibernate.cacheable", true)
                       .getSingleResult();
           } catch (EntityNotFoundException ex) {
           } catch (NoResultException ex) {
  @@ -236,6 +244,7 @@
               return (File) restrictedEntityManager
                       .createQuery("select f from File f where f.id = :id")
                       .setParameter("id", fileId)
  +                    .setHint("org.hibernate.cacheable", true)
                       .getSingleResult();
           } catch (EntityNotFoundException ex) {
           } catch (NoResultException ex) {
  @@ -251,6 +260,7 @@
                       .createQuery("select doc from Document doc, Directory dir" +
                                    " where doc.id = dir.defaultDocument.id and dir.id = :did")
                       .setParameter("did", directory.getId())
  +                    .setHint("org.hibernate.cacheable", true)
                       .getSingleResult();
           } catch (EntityNotFoundException ex) {
           } catch (NoResultException ex) {
  
  
  
  1.8       +1 -0      jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/dao/FeedDAO.java
  
  (In the diff below, changes in quantity of whitespace are not shown.)
  
  Index: FeedDAO.java
  ===================================================================
  RCS file: /cvsroot/jboss/jboss-seam/examples/wiki/src/main/org/jboss/seam/wiki/core/dao/FeedDAO.java,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -b -r1.7 -r1.8
  --- FeedDAO.java	22 Apr 2007 10:15:31 -0000	1.7
  +++ FeedDAO.java	27 Apr 2007 10:33:53 -0000	1.8
  @@ -38,6 +38,7 @@
               return (Feed) restrictedEntityManager
                   .createQuery("select f from Feed f where f.id = :id")
                   .setParameter("id", feedId)
  +                .setHint("org.hibernate.cacheable", true)
                   .getSingleResult();
           } catch (EntityNotFoundException ex) {
           } catch (NoResultException ex) {}
  
  
  



More information about the jboss-cvs-commits mailing list