[jboss-svn-commits] JBoss Portal SVN: r5648 - in trunk/core/src: main/org/jboss/portal/core/impl/model/instance main/org/jboss/portal/core/impl/model/portal resources/portal-core-sar/conf/hibernate/instance resources/portal-core-sar/conf/hibernate/portal

jboss-svn-commits at lists.jboss.org jboss-svn-commits at lists.jboss.org
Tue Nov 14 11:09:54 EST 2006


Author: julien at jboss.com
Date: 2006-11-14 11:09:47 -0500 (Tue, 14 Nov 2006)
New Revision: 5648

Modified:
   trunk/core/src/main/org/jboss/portal/core/impl/model/instance/PersistentInstanceContainer.java
   trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PersistentPortalObjectContainer.java
   trunk/core/src/resources/portal-core-sar/conf/hibernate/instance/domain.hbm.xml
   trunk/core/src/resources/portal-core-sar/conf/hibernate/portal/domain.hbm.xml
Log:
use natural id hibernate feature and avoid to use queries for natural id lookup

Modified: trunk/core/src/main/org/jboss/portal/core/impl/model/instance/PersistentInstanceContainer.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/impl/model/instance/PersistentInstanceContainer.java	2006-11-14 15:04:43 UTC (rev 5647)
+++ trunk/core/src/main/org/jboss/portal/core/impl/model/instance/PersistentInstanceContainer.java	2006-11-14 16:09:47 UTC (rev 5648)
@@ -25,6 +25,8 @@
 import org.hibernate.Query;
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
+import org.hibernate.Criteria;
+import org.hibernate.criterion.Restrictions;
 import org.hibernate.exception.ConstraintViolationException;
 import org.jboss.portal.common.invocation.InterceptorStackFactory;
 import org.jboss.portal.common.invocation.Invocation;
@@ -460,10 +462,10 @@
 
    private InstanceDefinitionImpl lookup(Session session, String id)
    {
-      Query query = session.createQuery("from InstanceDefinitionImpl where instanceId=:instanceId");
-      query.setParameter("instanceId", id);
-      query.setCacheable(true);
-      return (InstanceDefinitionImpl)query.uniqueResult();
+      Criteria criteria = session.createCriteria(InstanceDefinitionImpl.class);
+      criteria.add(Restrictions.naturalId().set("instanceId", id));
+      criteria.setCacheable(true);
+      return (InstanceDefinitionImpl)criteria.uniqueResult();
    }
 
    //**********************************************************************

Modified: trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PersistentPortalObjectContainer.java
===================================================================
--- trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PersistentPortalObjectContainer.java	2006-11-14 15:04:43 UTC (rev 5647)
+++ trunk/core/src/main/org/jboss/portal/core/impl/model/portal/PersistentPortalObjectContainer.java	2006-11-14 16:09:47 UTC (rev 5648)
@@ -25,6 +25,8 @@
 import org.hibernate.Query;
 import org.hibernate.Session;
 import org.hibernate.SessionFactory;
+import org.hibernate.Criteria;
+import org.hibernate.criterion.Restrictions;
 import org.jboss.logging.Logger;
 import org.jboss.portal.core.model.portal.PortalObjectContainer;
 import org.jboss.portal.jems.hibernate.ObjectContextualizer;
@@ -225,17 +227,23 @@
 
    private ObjectNode getObjectNode(Session session, String path)
    {
-      String s = LOOKUP_QUERY;
       if (path.length() == 0)
       {
          // For oracle where an empty path is treated as null so we need to add that here
          // See also org.jboss.portal.core.hibernate.OracleString
-         s = LOOKUP_QUERY_FOR_NULL_PATH;
+         Query query = session.createQuery(LOOKUP_QUERY_FOR_NULL_PATH);
+         query.setParameter("path", path);
+         query.setCacheable(true);
+         Object objectNode = query.uniqueResult();
+         return (ObjectNode)objectNode;
       }
-      Query query = session.createQuery(s);
-      query.setParameter("path", path);
-      query.setCacheable(true);
-      Object objectNode = query.uniqueResult();
-      return (ObjectNode)objectNode;
+      else
+      {
+         Criteria criteria = session.createCriteria(ObjectNode.class);
+         criteria.add(Restrictions.naturalId().set("path", path));
+         criteria.setCacheable(true);
+         Object objectNode = criteria.uniqueResult();
+         return (ObjectNode)objectNode;
+      }
    }
 }

Modified: trunk/core/src/resources/portal-core-sar/conf/hibernate/instance/domain.hbm.xml
===================================================================
--- trunk/core/src/resources/portal-core-sar/conf/hibernate/instance/domain.hbm.xml	2006-11-14 15:04:43 UTC (rev 5647)
+++ trunk/core/src/resources/portal-core-sar/conf/hibernate/instance/domain.hbm.xml	2006-11-14 16:09:47 UTC (rev 5648)
@@ -38,12 +38,14 @@
             <param name="sequence">instance_seq</param>
          </generator>
       </id>
+      <natural-id>
+         <property
+            name="instanceId"
+            column="ID"
+            not-null="true"
+            unique="true"/>
+      </natural-id>
       <property
-         name="instanceId"
-         column="ID"
-         not-null="true"
-         unique="true"/>
-      <property
          name="portletRef"
          column="PORTLET_REF"
          not-null="false"

Modified: trunk/core/src/resources/portal-core-sar/conf/hibernate/portal/domain.hbm.xml
===================================================================
--- trunk/core/src/resources/portal-core-sar/conf/hibernate/portal/domain.hbm.xml	2006-11-14 15:04:43 UTC (rev 5647)
+++ trunk/core/src/resources/portal-core-sar/conf/hibernate/portal/domain.hbm.xml	2006-11-14 16:09:47 UTC (rev 5648)
@@ -38,13 +38,15 @@
             <param name="sequence">portal_seq</param>
          </generator>
       </id>
+      <natural-id>
+         <property
+            name="path"
+            column="PATH"
+            type="org.jboss.portal.jems.hibernate.MagicString"
+            not-null="false"
+            unique="true"/>
+      </natural-id>
       <property
-         name="path"
-         column="PATH"
-         type="org.jboss.portal.jems.hibernate.MagicString"
-         not-null="false"
-         unique="true"/>
-      <property
          name="name"
          column="NAME"
          not-null="false"/>




More information about the jboss-svn-commits mailing list