cmailleux 2005/12/12 17:40:45 CET
Modified files:
core/src/java/org/jahia/hibernate/dao JahiaFieldsDataDAO.java
Log:
Return the most recent field id
Revision Changes Path
1.26 +4 -5
jahia/core/src/java/org/jahia/hibernate/dao/JahiaFieldsDataDAO.java
http://jahia.mine.nu:8080/cgi-bin/cvsweb.cgi/jahia/core/src/java/org/jahia/hibernate/dao/JahiaFieldsDataDAO.java.diff?r1=1.25&r2=1.26&f=h
Index: JahiaFieldsDataDAO.java
===================================================================
RCS file:
/home/cvs/repository/jahia/core/src/java/org/jahia/hibernate/dao/JahiaFieldsDataDAO.java,v
retrieving revision 1.25
retrieving revision 1.26
diff -u -r1.25 -r1.26
--- JahiaFieldsDataDAO.java 5 Dec 2005 12:22:03 -0000 1.25
+++ JahiaFieldsDataDAO.java 12 Dec 2005 16:40:44 -0000 1.26
@@ -7,14 +7,13 @@
import org.apache.commons.collections.FastHashMap;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
+import org.jahia.content.ContentFieldKey;
import org.jahia.data.fields.FieldTypes;
import org.jahia.hibernate.model.*;
import org.jahia.services.fields.ContentFieldTypes;
import org.jahia.services.version.EntryLoadRequest;
-import org.jahia.content.ContentFieldKey;
import org.springframework.orm.ObjectRetrievalFailureException;
import org.springframework.orm.hibernate3.HibernateTemplate;
-import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import java.util.*;
@@ -465,14 +464,14 @@
public Integer getAnyPageFieldID(Integer pageID) {
Integer retInteger = null;
- String hql = "select distinct f.comp_id.id from JahiaFieldsData f
where f.type=" + FieldTypes.PAGE +
- " and f.value=?";
+ String hql = "select distinct f.comp_id.id,f.comp_id.versionId from
JahiaFieldsData f where f.type=" + FieldTypes.PAGE +
+ " and f.value=? order by f.comp_id.versionId desc";
if (pageID != null) {
final HibernateTemplate template = getHibernateTemplate();
template.setCacheQueries(true);
List list = template.find(hql.toString(), new
Object[]{pageID.toString()});
if (list.size() > 0) {
- retInteger = (Integer) list.get(0);
+ retInteger = (Integer) (((Object[]) list.get(0))[0]);
} else {
throw new ObjectRetrievalFailureException("Cannot retrieve
jahia fields for this page", pageID);
}