[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