[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