You can subscribe to this list here.
2002 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
(22) |
Nov
(308) |
Dec
(131) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2003 |
Jan
(369) |
Feb
(171) |
Mar
(236) |
Apr
(187) |
May
(218) |
Jun
(217) |
Jul
(127) |
Aug
(448) |
Sep
(270) |
Oct
(231) |
Nov
(422) |
Dec
(255) |
2004 |
Jan
(111) |
Feb
(73) |
Mar
(338) |
Apr
(351) |
May
(349) |
Jun
(495) |
Jul
(394) |
Aug
(1048) |
Sep
(499) |
Oct
(142) |
Nov
(269) |
Dec
(638) |
2005 |
Jan
(825) |
Feb
(1272) |
Mar
(593) |
Apr
(690) |
May
(950) |
Jun
(958) |
Jul
(767) |
Aug
(839) |
Sep
(525) |
Oct
(449) |
Nov
(585) |
Dec
(455) |
2006 |
Jan
(603) |
Feb
(656) |
Mar
(195) |
Apr
(114) |
May
(136) |
Jun
(100) |
Jul
(128) |
Aug
(68) |
Sep
(7) |
Oct
(1) |
Nov
(1) |
Dec
(8) |
2007 |
Jan
(4) |
Feb
(3) |
Mar
(8) |
Apr
(16) |
May
(5) |
Jun
(4) |
Jul
(6) |
Aug
(23) |
Sep
(15) |
Oct
(5) |
Nov
(7) |
Dec
(5) |
2008 |
Jan
(5) |
Feb
(1) |
Mar
(1) |
Apr
(5) |
May
(1) |
Jun
(1) |
Jul
|
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2009 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
(1) |
Dec
|
2011 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(1) |
2012 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
(1) |
Jul
(1) |
Aug
(1) |
Sep
|
Oct
(2) |
Nov
(3) |
Dec
(2) |
2013 |
Jan
(1) |
Feb
|
Mar
(2) |
Apr
(1) |
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2014 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(2) |
Jun
(1) |
Jul
|
Aug
(1) |
Sep
(1) |
Oct
|
Nov
(1) |
Dec
|
2015 |
Jan
|
Feb
|
Mar
|
Apr
(1) |
May
|
Jun
|
Jul
|
Aug
|
Sep
(1) |
Oct
|
Nov
|
Dec
|
2016 |
Jan
|
Feb
|
Mar
(1) |
Apr
|
May
(1) |
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
2017 |
Jan
(1) |
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
(1) |
Aug
|
Sep
|
Oct
|
Nov
|
Dec
|
From: <one...@us...> - 2003-05-10 13:25:09
|
Update of /cvsroot/hibernate/Hibernate2 In directory sc8-pr-cvs1:/tmp/cvs-serv20982 Modified Files: changelog.txt Log Message: added extra credits Index: changelog.txt =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/changelog.txt,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** changelog.txt 10 May 2003 10:40:43 -0000 1.20 --- changelog.txt 10 May 2003 13:25:05 -0000 1.21 *************** *** 13,16 **** --- 13,18 ---- * fixed an NPE that could occur from update() in very strange cases (Chris Nockleberg) * disabled outer-join back to owner when initializing one-to-many (performance improvement) + * fixed a bug in Query.setParameterList() (Nick Heudecker) + * improved JCA support (Igor Fedorenko) Changes in version 2.0 beta 5 (21.4.2003) |
From: <one...@us...> - 2003-05-10 10:40:47
|
Update of /cvsroot/hibernate/Hibernate2 In directory sc8-pr-cvs1:/tmp/cvs-serv30986 Modified Files: changelog.txt Log Message: cleanups for 2.0 beta 6 Index: changelog.txt =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/changelog.txt,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** changelog.txt 10 May 2003 09:59:11 -0000 1.19 --- changelog.txt 10 May 2003 10:40:43 -0000 1.20 *************** *** 4,13 **** ----------------------------------------- * fixed a bug querying one-to-many associations to a <joined-subclass> ! * added support for dialect-specific LIMIT-style clauses * added <idbag> * fixed bug in hashCode() of persistent collections * fixed problem for XML parsers which ignore default values declared in DTD * <meta> tags can now be set to not be inheritable * fixed bug in Expression.in() * disabled outer-join back to owner when initializing one-to-many (performance improvement) --- 4,15 ---- ----------------------------------------- * fixed a bug querying one-to-many associations to a <joined-subclass> ! * added support for dialect-specific LIMIT-style clauses (David White) * added <idbag> * fixed bug in hashCode() of persistent collections + * <joined-subclass> now supported in HSQL (Wolfgang Jung) * fixed problem for XML parsers which ignore default values declared in DTD * <meta> tags can now be set to not be inheritable * fixed bug in Expression.in() + * fixed an NPE that could occur from update() in very strange cases (Chris Nockleberg) * disabled outer-join back to owner when initializing one-to-many (performance improvement) |
From: <one...@us...> - 2003-05-10 10:40:47
|
Update of /cvsroot/hibernate/Hibernate2/doc/reference/src In directory sc8-pr-cvs1:/tmp/cvs-serv30986/doc/reference/src Modified Files: manipulating_data.xml query_language.xml Log Message: cleanups for 2.0 beta 6 Index: manipulating_data.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/doc/reference/src/manipulating_data.xml,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** manipulating_data.xml 1 May 2003 07:53:20 -0000 1.10 --- manipulating_data.xml 10 May 2003 10:40:43 -0000 1.11 *************** *** 1153,1157 **** </sect1> ! <sect1 id="manipulating-data-s17"> <title>Frequently Asked Questions</title> --- 1153,1157 ---- </sect1> ! <!-- <sect1 id="manipulating-data-s17"> <title>Frequently Asked Questions</title> *************** *** 1321,1325 **** ! </sect1> </chapter> --- 1321,1325 ---- ! </sect1> --> </chapter> Index: query_language.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/doc/reference/src/query_language.xml,v retrieving revision 1.12 retrieving revision 1.13 diff -C2 -d -r1.12 -r1.13 *** query_language.xml 26 Apr 2003 19:36:25 -0000 1.12 --- query_language.xml 10 May 2003 10:40:43 -0000 1.13 *************** *** 835,839 **** <para> As this solution can't return a <literal>User</literal> with zero messages ! because of the implicit inner join, se following form is also useful: </para> --- 835,839 ---- <para> As this solution can't return a <literal>User</literal> with zero messages ! because of the implicit inner join, the following form is also useful: </para> *************** *** 853,857 **** <para> ! Collections are pageable when using the query API: </para> --- 853,857 ---- <para> ! Collections are pageable by using the <literal>Query</literal> interface with a filter: </para> *************** *** 860,863 **** --- 860,876 ---- q.setFirstResult(PAGE_SIZE * pageNumber); List page = q.list();]]></programlisting> + + <para> + Collection elements may be ordered or grouped using a query filter: + </para> + + <programlisting><![CDATA[List orderedCollection = s.filter( collection, "order by this.amount" ); + List counts = s.filter( collection, "select this.type, count(this) group by this.type" );]]></programlisting> + + <para> + You can find the size of a collection without initializing it: + </para> + + <programlisting><![CDATA[Integer size = (Integer) s.filter( collection, "select count(*)" ).get(0);]]></programlisting> </sect1> |
From: <one...@us...> - 2003-05-10 09:59:17
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister In directory sc8-pr-cvs1:/tmp/cvs-serv17362/src/net/sf/hibernate/persister Modified Files: NormalizedEntityPersister.java Log Message: cleanups for 2.0 beta 6 Index: NormalizedEntityPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/NormalizedEntityPersister.java,v retrieving revision 1.21 retrieving revision 1.22 diff -C2 -d -r1.21 -r1.22 *** NormalizedEntityPersister.java 8 May 2003 09:39:22 -0000 1.21 --- NormalizedEntityPersister.java 10 May 2003 09:59:12 -0000 1.22 *************** *** 123,127 **** private static final String[] STRING_ARRAY = {}; private static final Type[] TYPE_ARRAY = {}; - private static final Class[] NO_CLASSES = new Class[0]; private static final Log log = LogFactory.getLog(NormalizedEntityPersister.class); --- 123,126 ---- *************** *** 935,946 **** for (int i=0; i<len; i++) { temp[i] = objects[len-i-1]; - } - return temp; - } - - private static final int[] reverse(int[] objects) { - int[] temp = new int[objects.length]; - for (int i=0; i<objects.length; i++) { - temp[i] = objects[objects.length-i-1]; } return temp; --- 934,937 ---- |
From: <one...@us...> - 2003-05-10 09:59:17
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/cfg In directory sc8-pr-cvs1:/tmp/cvs-serv17362/src/net/sf/hibernate/cfg Modified Files: Environment.java Log Message: cleanups for 2.0 beta 6 Index: Environment.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/cfg/Environment.java,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Environment.java 26 Apr 2003 03:58:29 -0000 1.11 --- Environment.java 10 May 2003 09:59:11 -0000 1.12 *************** *** 131,135 **** public final class Environment { ! private static final String VERSION = "2.0 beta 5"; /** --- 131,135 ---- public final class Environment { ! private static final String VERSION = "2.0 beta 6"; /** |
From: <one...@us...> - 2003-05-10 09:59:17
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/hbm2java In directory sc8-pr-cvs1:/tmp/cvs-serv17362/src/net/sf/hibernate/tool/hbm2java Modified Files: BasicRenderer.java FinderRenderer.java MetaAttributeHelper.java Log Message: cleanups for 2.0 beta 6 Index: BasicRenderer.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/hbm2java/BasicRenderer.java,v retrieving revision 1.17 retrieving revision 1.18 diff -C2 -d -r1.17 -r1.18 *** BasicRenderer.java 7 May 2003 15:09:06 -0000 1.17 --- BasicRenderer.java 10 May 2003 09:59:12 -0000 1.18 *************** *** 11,17 **** import net.sf.hibernate.util.StringHelper; - import org.apache.commons.logging.Log; - import org.apache.commons.logging.LogFactory; - public class BasicRenderer extends AbstractRenderer { --- 11,14 ---- *************** *** 20,26 **** static final protected int CONSTRAINT = 3;//any constraint properties are bound as well ! static private Log log = LogFactory.getLog(BasicRenderer.class); ! ! public void render(String savedToPackage, String savedToClass, ClassMapping classMapping, Map class2classmap, PrintWriter mainwriter) throws Exception { if (savedToPackage!=null && !savedToPackage.trim().equals("")) { mainwriter.println("package " + savedToPackage + ";"); --- 17,21 ---- static final protected int CONSTRAINT = 3;//any constraint properties are bound as well ! public void render(String savedToPackage, String savedToClass, ClassMapping classMapping, Map class2classmap, PrintWriter mainwriter) throws Exception { if (savedToPackage!=null && !savedToPackage.trim().equals("")) { mainwriter.println("package " + savedToPackage + ";"); Index: FinderRenderer.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/hbm2java/FinderRenderer.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** FinderRenderer.java 12 Apr 2003 14:58:34 -0000 1.2 --- FinderRenderer.java 10 May 2003 09:59:12 -0000 1.3 *************** *** 8,14 **** import java.util.Map; - import org.apache.commons.logging.Log; - import org.apache.commons.logging.LogFactory; - /** * <p>Title: Basic Finder Generator for Hibernate 2</p> --- 8,11 ---- *************** *** 50,55 **** private static final String MT_FINDERMETHOD = "finder"; - private static Log log = LogFactory.getLog(FinderRenderer.class); - /** --- 47,50 ---- Index: MetaAttributeHelper.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/hbm2java/MetaAttributeHelper.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** MetaAttributeHelper.java 4 May 2003 10:32:02 -0000 1.2 --- MetaAttributeHelper.java 10 May 2003 09:59:12 -0000 1.3 *************** *** 10,15 **** import org.apache.commons.collections.MultiHashMap; import org.apache.commons.collections.MultiMap; - import org.apache.commons.logging.Log; - import org.apache.commons.logging.LogFactory; import org.jdom.Element; --- 10,13 ---- *************** *** 22,27 **** */ public class MetaAttributeHelper { - - static private Log log = LogFactory.getLog(MetaAttributeHelper.class); static class MetaAttribute { --- 20,23 ---- |
From: <one...@us...> - 2003-05-10 09:59:17
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/class2hbm In directory sc8-pr-cvs1:/tmp/cvs-serv17362/src/net/sf/hibernate/tool/class2hbm Modified Files: ReflectedClass.java Log Message: cleanups for 2.0 beta 6 Index: ReflectedClass.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/class2hbm/ReflectedClass.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** ReflectedClass.java 21 Mar 2003 12:03:41 -0000 1.4 --- ReflectedClass.java 10 May 2003 09:59:12 -0000 1.5 *************** *** 263,273 **** } - private String capitalize( String s ) { - char c = s.charAt(0); - if( Character.isUpperCase(c) ) return s; - char[] ca = {Character.toUpperCase(c)}; - return new String(ca).concat(s.substring(1)); - } - /** called to determine if the class has a UID property * --- 263,266 ---- |
From: <one...@us...> - 2003-05-10 09:59:17
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/mapping In directory sc8-pr-cvs1:/tmp/cvs-serv17362/src/net/sf/hibernate/mapping Modified Files: RootClass.java Log Message: cleanups for 2.0 beta 6 Index: RootClass.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/mapping/RootClass.java,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** RootClass.java 16 Mar 2003 01:45:52 -0000 1.10 --- RootClass.java 10 May 2003 09:59:12 -0000 1.11 *************** *** 7,19 **** import net.sf.hibernate.cache.CacheConcurrencyStrategy; - import org.apache.commons.logging.Log; - import org.apache.commons.logging.LogFactory; - public class RootClass extends PersistentClass { public static final String DEFAULT_IDENTIFIER_COLUMN_NAME = "id"; public static final String DEFAULT_DISCRIMINATOR_COLUMN_NAME = "class"; - - private static final Log log = LogFactory.getLog(RootClass.class); private Property identifierProperty; //may be final --- 7,14 ---- |
From: <one...@us...> - 2003-05-10 09:59:17
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type In directory sc8-pr-cvs1:/tmp/cvs-serv17362/src/net/sf/hibernate/type Modified Files: ComponentType.java Log Message: cleanups for 2.0 beta 6 Index: ComponentType.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type/ComponentType.java,v retrieving revision 1.15 retrieving revision 1.16 diff -C2 -d -r1.15 -r1.16 *** ComponentType.java 8 May 2003 10:52:40 -0000 1.15 --- ComponentType.java 10 May 2003 09:59:12 -0000 1.16 *************** *** 8,14 **** import java.sql.SQLException; - import org.apache.commons.logging.Log; - import org.apache.commons.logging.LogFactory; - import net.sf.cglib.MetaClass; --- 8,11 ---- *************** *** 31,36 **** public class ComponentType extends AbstractType implements AbstractComponentType { - private static final Log log = LogFactory.getLog(ComponentType.class); - private final Class componentClass; private final Constructor constructor; --- 28,31 ---- |
From: <one...@us...> - 2003-05-10 09:59:16
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl In directory sc8-pr-cvs1:/tmp/cvs-serv17362/src/net/sf/hibernate/impl Modified Files: SessionImpl.java Log Message: cleanups for 2.0 beta 6 Index: SessionImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/SessionImpl.java,v retrieving revision 1.42 retrieving revision 1.43 diff -C2 -d -r1.42 -r1.43 *** SessionImpl.java 8 May 2003 10:51:31 -0000 1.42 --- SessionImpl.java 10 May 2003 09:59:12 -0000 1.43 *************** *** 332,336 **** dirty = true; } ! private void setLoadedPersister(CollectionPersister persister) { loadedPersister=persister; if (persister!=null) role=persister.getRole(); --- 332,336 ---- dirty = true; } ! void setLoadedPersister(CollectionPersister persister) { loadedPersister=persister; if (persister!=null) role=persister.getRole(); |
From: <one...@us...> - 2003-05-10 09:59:16
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/hql In directory sc8-pr-cvs1:/tmp/cvs-serv17362/src/net/sf/hibernate/hql Modified Files: QueryTranslator.java Log Message: cleanups for 2.0 beta 6 Index: QueryTranslator.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/hql/QueryTranslator.java,v retrieving revision 1.28 retrieving revision 1.29 diff -C2 -d -r1.28 -r1.29 *** QueryTranslator.java 8 May 2003 10:48:14 -0000 1.28 --- QueryTranslator.java 10 May 2003 09:59:11 -0000 1.29 *************** *** 371,376 **** } - private static final int[] NO_INTS = new int[0]; - protected int[] getNamedParameterLocs(String name) throws QueryException { Object o = namedParameters.get(name); --- 371,374 ---- |
From: <one...@us...> - 2003-05-10 09:59:16
|
Update of /cvsroot/hibernate/Hibernate2 In directory sc8-pr-cvs1:/tmp/cvs-serv17362 Modified Files: build.xml changelog.txt readme.txt Log Message: cleanups for 2.0 beta 6 Index: build.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/build.xml,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** build.xml 31 Mar 2003 06:45:12 -0000 1.14 --- build.xml 10 May 2003 09:59:11 -0000 1.15 *************** *** 61,65 **** <exclude name="**/*.ccf"/> <exclude name="**/*.cfg.xml"/> ! <exclude name="META-INF/ra.xml"/> </patternset> --- 61,66 ---- <exclude name="**/*.ccf"/> <exclude name="**/*.cfg.xml"/> ! <exclude name="META-INF/ra.xml"/> ! <exclude name="net/sf/hibernate/test/**/*"/> </patternset> *************** *** 75,78 **** --- 76,80 ---- <include name="**/*.properties"/> <include name="**/*.ccf"/> + <exclude name="net/sf/hibernate/test/**/*"/> </patternset> *************** *** 113,117 **** debug="${javac.debug}" optimize="${javac.optimize}" ! nowarn="on"/> </target> --- 115,121 ---- debug="${javac.debug}" optimize="${javac.optimize}" ! excludes="net/sf/hibernate/test/**/*" ! nowarn="on"> ! </javac> </target> Index: changelog.txt =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/changelog.txt,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** changelog.txt 4 May 2003 10:52:18 -0000 1.18 --- changelog.txt 10 May 2003 09:59:11 -0000 1.19 *************** *** 1,7 **** Hibernate Changelog =================== ! Changes in version 2.x (xx.x.2003) ! ---------------------------------- ! * <meta> tags can now be set to not be inheritable. Changes in version 2.0 beta 5 (21.4.2003) --- 1,14 ---- Hibernate Changelog =================== ! Changes in version 2.0 beta 6 (10.5.2003) ! ----------------------------------------- ! * fixed a bug querying one-to-many associations to a <joined-subclass> ! * added support for dialect-specific LIMIT-style clauses ! * added <idbag> ! * fixed bug in hashCode() of persistent collections ! * fixed problem for XML parsers which ignore default values declared in DTD ! * <meta> tags can now be set to not be inheritable ! * fixed bug in Expression.in() ! * disabled outer-join back to owner when initializing one-to-many (performance improvement) Changes in version 2.0 beta 5 (21.4.2003) Index: readme.txt =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/readme.txt,v retrieving revision 1.5 retrieving revision 1.6 diff -C2 -d -r1.5 -r1.6 *** readme.txt 21 Apr 2003 07:04:09 -0000 1.5 --- readme.txt 10 May 2003 09:59:11 -0000 1.6 *************** *** 1,5 **** Hibernate - Relational Persistence for Idiomatic Java ===================================================== ! version 2.0 beta 5 21 April 2003 Instructions --- 1,5 ---- Hibernate - Relational Persistence for Idiomatic Java ===================================================== ! version 2.0 beta 6 10 May 2003 Instructions |
From: <one...@us...> - 2003-05-09 08:16:59
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql In directory sc8-pr-cvs1:/tmp/cvs-serv29914/sql Added Files: HSQLCaseFragment.java Log Message: HSQLCaseFragment contributed by Wolfgang Jung --- NEW FILE: HSQLCaseFragment.java --- //$Id: HSQLCaseFragment.java,v 1.1 2003/05/09 08:16:55 oneovthafew Exp $ package net.sf.hibernate.sql; import java.util.Iterator; import java.util.Map; import net.sf.hibernate.util.StringHelper; import org.apache.commons.collections.SequencedHashMap; /** * Represents an SQL <tt>casewhen(..., ..., ....) as ...</tt> * @author Wolfgang Jung */ public class HSQLCaseFragment extends CaseFragment { private String returnColumnName; private Map cases = new SequencedHashMap(); public CaseFragment setReturnColumnName(String returnColumnName) { this.returnColumnName = returnColumnName; return this; } public CaseFragment setReturnColumnName(String returnColumnName, String suffix) { return setReturnColumnName( new Alias(suffix).toAliasString(returnColumnName) ); } public CaseFragment addWhenColumnNotNull(String alias, String columnName, String value) { cases.put( alias + StringHelper.DOT + columnName + " is not null", value ); return this; } public String toFragmentString() { StringBuffer buf = new StringBuffer( cases.size() * 15 + 10 ); StringBuffer buf2= new StringBuffer(cases.size()); Iterator iter = cases.entrySet().iterator(); while ( iter.hasNext() ) { Map.Entry me = (Map.Entry) iter.next(); buf.append(" casewhen(") .append( me.getKey() ) .append(", ") .append( me.getValue() ) .append(", "); buf2.append(")"); } buf.append("null"); buf.append(buf2); if (returnColumnName!=null) { buf.append(" as ") .append(returnColumnName); } return buf.toString(); } } |
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql In directory sc8-pr-cvs1:/tmp/cvs-serv29297/sql Modified Files: ANSICaseFragment.java ANSIJoinFragment.java CaseFragment.java DecodeCaseFragment.java JoinFragment.java OracleJoinFragment.java Log Message: HSQLCaseFragment contributed by Wolfgang Jung Index: ANSICaseFragment.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql/ANSICaseFragment.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** ANSICaseFragment.java 6 Apr 2003 10:11:11 -0000 1.3 --- ANSICaseFragment.java 9 May 2003 08:15:14 -0000 1.4 *************** *** 1 **** ! //$Id$ package net.sf.hibernate.sql; import java.util.Iterator; import java.util.Map; import net.sf.hibernate.util.StringHelper; import org.apache.commons.collections.SequencedHashMap; /** * Represents an SQL <tt>case when .... then .... end as ...</tt> */ public class ANSICaseFragment extends CaseFragment { private String returnColumnName; private Map cases = new SequencedHashMap(); public CaseFragment setReturnColumnName(String returnColumnName) { this.returnColumnName = returnColumnName; return this; } public CaseFragment setReturnColumnName(String returnColumnName, String suffix) { return setReturnColumnName( new Alias(suffix).toAliasString(returnColumnName) ); } public CaseFragment addWhenColumnNotNull(String alias, String columnName, String value) { cases.put( alias + StringHelper.DOT + columnName + " is not null", value ); return this; } public String toFragmentString() { StringBuffer buf = new StringBuffer( cases.size() * 15 + 10 ); buf.append("case"); Iterator iter = cases.entrySet().iterator(); while ( iter.hasNext() ) { Map.Entry me = (Map.Entry) iter.next(); buf.append(" when ") .append( me.getKey() ) .append(" then ") .append( me.getValue() ); } buf.append(" end"); if (returnColumnName!=null) { buf.append(" as ") .append(returnColumnName); } return buf.toString(); } } \ No newline at end of file --- 1 ---- ! //$Id$ package net.sf.hibernate.sql; import java.util.Iterator; import java.util.Map; import net.sf.hibernate.util.StringHelper; import org.apache.commons.collections.SequencedHashMap; /** * Represents an SQL <tt>case when .... then .... end as ...</tt> * @author Gavin King, Simon Harris */ public class ANSICaseFragment extends CaseFragment { private String returnColumnName; private Map cases = new SequencedHashMap(); public CaseFragment setReturnColumnName(String returnColumnName) { this.returnColumnName = returnColumnName; return this; } public CaseFragment setReturnColumnName(String returnColumnName, String suffix) { return setReturnColumnName( new Alias(suffix).toAliasString(returnColumnName) ); } public CaseFragment addWhenColumnNotNull(String alias, String columnName, String value) { cases.put( alias + StringHelper.DOT + columnName + " is not null", value ); return this; } public String toFragmentString() { StringBuffer buf = new StringBuffer( cases.size() * 15 + 10 ); buf.append("case"); Iterator iter = cases.entrySet().iterator(); while ( iter.hasNext() ) { Map.Entry me = (Map.Entry) iter.next(); buf.append(" when ") .append( me.getKey() ) .append(" then ") .append( me.getValue() ); } buf.append(" end"); if (returnColumnName!=null) { buf.append(" as ") .append(returnColumnName); } return buf.toString(); } } \ No newline at end of file Index: ANSIJoinFragment.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql/ANSIJoinFragment.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** ANSIJoinFragment.java 23 Feb 2003 07:22:11 -0000 1.1 --- ANSIJoinFragment.java 9 May 2003 08:15:14 -0000 1.2 *************** *** 5,8 **** --- 5,12 ---- import net.sf.hibernate.util.StringHelper; + /** + * An ANSI-style join + * @author Gavin King + */ public class ANSIJoinFragment extends JoinFragment { Index: CaseFragment.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql/CaseFragment.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** CaseFragment.java 1 Feb 2003 12:22:35 -0000 1.2 --- CaseFragment.java 9 May 2003 08:15:14 -0000 1.3 *************** *** 3,6 **** --- 3,7 ---- /** * Represents an SQL <tt>case when .... then .... end as ...</tt> + * @author Gavin King, Simon Harris */ public abstract class CaseFragment { Index: DecodeCaseFragment.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql/DecodeCaseFragment.java,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** DecodeCaseFragment.java 6 Apr 2003 10:11:11 -0000 1.3 --- DecodeCaseFragment.java 9 May 2003 08:15:14 -0000 1.4 *************** *** 1 **** ! //$Id$ package net.sf.hibernate.sql; import java.util.Iterator; import java.util.Map; import net.sf.hibernate.util.StringHelper; import org.apache.commons.collections.SequencedHashMap; /** * Represents an SQL <tt>decode( pkvalue, key1, 1, key2, 2, ..., 0)</tt> */ public class DecodeCaseFragment extends CaseFragment { private String returnColumnName; private Map cases = new SequencedHashMap(); public CaseFragment setReturnColumnName(String returnColumnName) { this.returnColumnName = returnColumnName; return this; } public CaseFragment setReturnColumnName(String returnColumnName, String suffix) { return setReturnColumnName( new Alias(suffix).toAliasString(returnColumnName) ); } public CaseFragment addWhenColumnNotNull(String alias, String columnName, String value) { cases.put( alias + StringHelper.DOT + columnName, value ); return this; } public String toFragmentString() { StringBuffer buf = new StringBuffer( cases.size() * 15 + 10 ); Iterator iter = cases.entrySet().iterator(); while ( iter.hasNext() ) { Map.Entry me = (Map.Entry) iter.next(); if (me.getValue().equals("0")) { buf.insert(0, me.getKey()); } else { buf.append(", ") .append( me.getKey() ) .append(", ") .append( me.getValue() ); } } buf.insert(0, "decode (").append(",0 )"); if (returnColumnName!=null) { buf.append(" as ") .append(returnColumnName); } return buf.toString(); } } \ No newline at end of file --- 1 ---- ! //$Id$ package net.sf.hibernate.sql; import java.util.Iterator; import java.util.Map; import net.sf.hibernate.util.StringHelper; import org.apache.commons.collections.SequencedHashMap; /** * Represents an SQL <tt>decode( pkvalue, key1, 1, key2, 2, ..., 0)</tt> * @author Simon Harris */ public class DecodeCaseFragment extends CaseFragment { private String returnColumnName; private Map cases = new SequencedHashMap(); public CaseFragment setReturnColumnName(String returnColumnName) { this.returnColumnName = returnColumnName; return this; } public CaseFragment setReturnColumnName(String returnColumnName, String suffix) { return setReturnColumnName( new Alias(suffix).toAliasString(returnColumnName) ); } public CaseFragment addWhenColumnNotNull(String alias, String columnName, String value) { cases.put( alias + StringHelper.DOT + columnName, value ); return this; } public String toFragmentString() { StringBuffer buf = new StringBuffer( cases.size() * 15 + 10 ); Iterator iter = cases.entrySet().iterator(); while ( iter.hasNext() ) { Map.Entry me = (Map.Entry) iter.next(); if (me.getValue().equals("0")) { buf.insert(0, me.getKey()); } else { buf.append(", ") .append( me.getKey() ) .append(", ") .append( me.getValue() ); } } buf.insert(0, "decode (").append(",0 )"); if (returnColumnName!=null) { buf.append(" as ") .append(returnColumnName); } return buf.toString(); } } \ No newline at end of file Index: JoinFragment.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql/JoinFragment.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** JoinFragment.java 23 Feb 2003 07:22:11 -0000 1.1 --- JoinFragment.java 9 May 2003 08:15:14 -0000 1.2 *************** *** 2,5 **** --- 2,9 ---- package net.sf.hibernate.sql; + /** + * Represents an SQL <tt>join</tt> + * @author Gavin King + */ public abstract class JoinFragment { Index: OracleJoinFragment.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql/OracleJoinFragment.java,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** OracleJoinFragment.java 23 Feb 2003 07:22:11 -0000 1.1 --- OracleJoinFragment.java 9 May 2003 08:15:14 -0000 1.2 *************** *** 4,7 **** --- 4,11 ---- import net.sf.hibernate.util.StringHelper; + /** + * An Oracle-style (theta) join + * @author Jon Lipsky, Gavin King + */ public class OracleJoinFragment extends JoinFragment { |
From: <one...@us...> - 2003-05-09 08:15:27
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/dialect In directory sc8-pr-cvs1:/tmp/cvs-serv29297/dialect Modified Files: HSQLDialect.java Log Message: HSQLCaseFragment contributed by Wolfgang Jung Index: HSQLDialect.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/dialect/HSQLDialect.java,v retrieving revision 1.9 retrieving revision 1.10 diff -C2 -d -r1.9 -r1.10 *** HSQLDialect.java 4 May 2003 06:09:40 -0000 1.9 --- HSQLDialect.java 9 May 2003 08:15:15 -0000 1.10 *************** *** 7,10 **** --- 7,12 ---- import net.sf.hibernate.cfg.Environment; + import net.sf.hibernate.sql.CaseFragment; + import net.sf.hibernate.sql.HSQLCaseFragment; /** *************** *** 83,86 **** --- 85,92 ---- } + public CaseFragment createCaseFragment() { + return new HSQLCaseFragment(); + } + } |
From: <one...@us...> - 2003-05-08 10:52:47
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type In directory sc8-pr-cvs1:/tmp/cvs-serv32552/type Modified Files: ArrayType.java ComponentType.java Log Message: fixed minor issues from HB-56 Index: ArrayType.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type/ArrayType.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** ArrayType.java 6 Apr 2003 10:11:12 -0000 1.8 --- ArrayType.java 8 May 2003 10:52:40 -0000 1.9 *************** *** 17,26 **** public class ArrayType extends PersistentCollectionType { ! private final Class elementClass; private final Class arrayClass; public ArrayType(String role, Class elementClass) { super(role); ! this.elementClass = elementClass; arrayClass = Array.newInstance(elementClass, 0).getClass(); } --- 17,26 ---- public class ArrayType extends PersistentCollectionType { ! //private final Class elementClass; private final Class arrayClass; public ArrayType(String role, Class elementClass) { super(role); ! //this.elementClass = elementClass; arrayClass = Array.newInstance(elementClass, 0).getClass(); } Index: ComponentType.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type/ComponentType.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** ComponentType.java 25 Apr 2003 03:40:37 -0000 1.14 --- ComponentType.java 8 May 2003 10:52:40 -0000 1.15 *************** *** 42,46 **** private final Cascades.CascadeStyle[] cascade; private final int[] joinedFetch; - private final String parentProperty; private final ReflectHelper.Setter parentSetter; private final MetaClass optimizer; --- 42,45 ---- *************** *** 93,97 **** } this.parentSetter = (parentProperty==null) ? null : ReflectHelper.getSetter(componentClass, parentProperty); - this.parentProperty = parentProperty; this.propertyNames = properties; this.cascade = cascade; --- 92,95 ---- |
From: <one...@us...> - 2003-05-08 10:51:34
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl In directory sc8-pr-cvs1:/tmp/cvs-serv31503/impl Modified Files: BatcherImpl.java ScrollableResultsImpl.java SessionImpl.java Log Message: fixed minor issues from HB-56 Index: BatcherImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/BatcherImpl.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** BatcherImpl.java 25 Apr 2003 05:56:33 -0000 1.4 --- BatcherImpl.java 8 May 2003 10:51:31 -0000 1.5 *************** *** 22,26 **** public abstract class BatcherImpl implements Batcher { ! public static int open; protected static final Log log = LogFactory.getLog(BatcherImpl.class); --- 22,26 ---- public abstract class BatcherImpl implements Batcher { ! private static int open; protected static final Log log = LogFactory.getLog(BatcherImpl.class); Index: ScrollableResultsImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/ScrollableResultsImpl.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** ScrollableResultsImpl.java 3 May 2003 07:20:50 -0000 1.7 --- ScrollableResultsImpl.java 8 May 2003 10:51:31 -0000 1.8 *************** *** 29,33 **** private final SessionImplementor sess; private final Type[] types; - private final boolean single; private final String[][] names; --- 29,32 ---- *************** *** 125,130 **** this.sess = sess; this.types = types; - - single = types.length==1; names = new String[types.length][]; --- 124,127 ---- Index: SessionImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/SessionImpl.java,v retrieving revision 1.41 retrieving revision 1.42 diff -C2 -d -r1.41 -r1.42 *** SessionImpl.java 8 May 2003 10:03:56 -0000 1.41 --- SessionImpl.java 8 May 2003 10:51:31 -0000 1.42 *************** *** 142,146 **** private transient int dontFlushFromFind = 0; ! private transient boolean reentrantCallback = false; private transient int cascading = 0; --- 142,146 ---- private transient int dontFlushFromFind = 0; ! //private transient boolean reentrantCallback = false; private transient int cascading = 0; *************** *** 1942,1950 **** } ! reentrantCallback=true; if ( persister.implementsLifecycle() ) ( (Lifecycle) object ).onLoad(this, id); ! reentrantCallback=false; if ( log.isDebugEnabled() ) log.debug( "done materializing entity " + MessageHelper.infoString(persister, id) ); --- 1942,1950 ---- } ! //reentrantCallback=true; if ( persister.implementsLifecycle() ) ( (Lifecycle) object ).onLoad(this, id); ! //reentrantCallback=false; if ( log.isDebugEnabled() ) log.debug( "done materializing entity " + MessageHelper.infoString(persister, id) ); |
From: <one...@us...> - 2003-05-08 10:48:18
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/hql In directory sc8-pr-cvs1:/tmp/cvs-serv29988/hql Modified Files: QueryTranslator.java WhereParser.java Log Message: fixed minor issues from HB-56 Index: QueryTranslator.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/hql/QueryTranslator.java,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** QueryTranslator.java 7 May 2003 15:09:04 -0000 1.27 --- QueryTranslator.java 8 May 2003 10:48:14 -0000 1.28 *************** *** 124,128 **** * Compile the query (generate the SQL). */ ! protected void compile(String queryString) throws QueryException, MappingException { this.queryString = queryString; --- 124,128 ---- * Compile the query (generate the SQL). */ ! private void compile(String queryString) throws QueryException, MappingException { this.queryString = queryString; *************** *** 401,406 **** .toString(); } - - private List associations; private void renderSQL() throws QueryException, MappingException { --- 401,404 ---- Index: WhereParser.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/hql/WhereParser.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** WhereParser.java 7 May 2003 15:09:05 -0000 1.14 --- WhereParser.java 8 May 2003 10:48:14 -0000 1.15 *************** *** 136,142 **** // ( foo.Bar.Baz + 1.0 ) < 2.0 (maps to: ( bar.Baz + 1.0 ) < 2.0 and foo.Bar = bar.id) - private boolean quoted = false; //Inside a quoted string private boolean betweenSpecialCase = false; //Inside a BETWEEN ... AND ... expression - private int bracketsSinceFunction = 0; //How deep inside in IN are we? private boolean negated = false; --- 136,140 ---- |
From: <one...@us...> - 2003-05-08 10:03:59
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl In directory sc8-pr-cvs1:/tmp/cvs-serv30813 Modified Files: SessionImpl.java Log Message: fix for HB-66 by Chris Nockleberg Index: SessionImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/SessionImpl.java,v retrieving revision 1.40 retrieving revision 1.41 diff -C2 -d -r1.40 -r1.41 *** SessionImpl.java 7 May 2003 15:09:05 -0000 1.40 --- SessionImpl.java 8 May 2003 10:03:56 -0000 1.41 *************** *** 187,191 **** * of an object with respect to its persistent state */ ! final class EntityEntry implements Serializable { LockMode lockMode; --- 187,191 ---- * of an object with respect to its persistent state */ ! static final class EntityEntry implements Serializable { LockMode lockMode; *************** *** 971,975 **** nullifiables.add( new Key(entry.id, persister) ); entry.status = DELETED; // before any callbacks, etc, so subdeletions see that this deletion happened first - //tableAccesses.add( persister.getQualifiedTableName() ); // unnecessary, since it was done on load. TODO: remove this line ScheduledDeletion delete = new ScheduledDeletion(entry.id, version, object, persister, this); deletions.add(delete); // Ensures that containing deletions happen before sub-deletions --- 971,974 ---- *************** *** 1079,1084 **** if ( snapshot!=null && ! snapshot.getRole().equals( persister.getRole() ) && ! snapshot.getKey().equals(id) ) { if ( coll.setSession(this) ) addInitializedCollection(coll, snapshot); --- 1078,1083 ---- if ( snapshot!=null && ! persister.getRole().equals( snapshot.getRole() ) && ! id.equals( snapshot.getKey() ) ) { if ( coll.setSession(this) ) addInitializedCollection(coll, snapshot); |
From: <one...@us...> - 2003-05-08 09:49:21
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader In directory sc8-pr-cvs1:/tmp/cvs-serv25279/hibernate/loader Modified Files: OuterJoinLoader.java Log Message: don't outerjoin back to collection owner fix issue with outerjoin load + component + joined-subclass Index: OuterJoinLoader.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader/OuterJoinLoader.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** OuterJoinLoader.java 8 May 2003 09:39:22 -0000 1.19 --- OuterJoinLoader.java 8 May 2003 09:49:18 -0000 1.20 *************** *** 158,162 **** if ( autoEager( act.enableJoinedFetch(i), etype, session ) && ! enableJoinedFetch( persister.getSubclassPropertyTableName(i), range ) ) { walkTree(etype, aliasedRange, persister, alias, associations, classPersisters, session); --- 158,162 ---- if ( autoEager( act.enableJoinedFetch(i), etype, session ) && ! enableJoinedFetch( persister.getSubclassPropertyTableName(propertyNumber), range ) ) { walkTree(etype, aliasedRange, persister, alias, associations, classPersisters, session); *************** *** 186,190 **** if ( autoEager( act.enableJoinedFetch(i), etype, session ) && ! enableJoinedFetch( persister.getQualifiedTableName(), range) ) { String[] columns = StringHelper.prefix( range, alias + StringHelper.DOT ); --- 186,190 ---- if ( autoEager( act.enableJoinedFetch(i), etype, session ) && ! enableJoinedFetch( persister.getQualifiedTableName(), range ) ) { String[] columns = StringHelper.prefix( range, alias + StringHelper.DOT ); |
From: <one...@us...> - 2003-05-08 09:39:25
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister In directory sc8-pr-cvs1:/tmp/cvs-serv21363/hibernate/persister Modified Files: EntityPersister.java Loadable.java NormalizedEntityPersister.java Log Message: don't outerjoin back to collection owner fix issue with outerjoin load + component + joined-subclass Index: EntityPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/EntityPersister.java,v retrieving revision 1.27 retrieving revision 1.28 diff -C2 -d -r1.27 -r1.28 *** EntityPersister.java 7 May 2003 15:09:05 -0000 1.27 --- EntityPersister.java 8 May 2003 09:39:22 -0000 1.28 *************** *** 889,892 **** --- 889,896 ---- } + public String getSubclassPropertyTableName(int i) { + return qualifiedTableName; + } + public String propertySelectFragment(String name, String suffix) { Index: Loadable.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/Loadable.java,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -d -r1.8 -r1.9 *** Loadable.java 7 May 2003 15:09:05 -0000 1.8 --- Loadable.java 8 May 2003 09:39:22 -0000 1.9 *************** *** 82,85 **** --- 82,92 ---- */ public String[] getSubclassPropertyColumnNames(int i); + + /** + * Return the table name used to persist all properties of + * all subclasses of the persistent class + * (optional operation) + */ + public String getSubclassPropertyTableName(int i); /** * Given the number of a property of a subclass, and a table alias, Index: NormalizedEntityPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/NormalizedEntityPersister.java,v retrieving revision 1.20 retrieving revision 1.21 diff -C2 -d -r1.20 -r1.21 *** NormalizedEntityPersister.java 7 May 2003 15:09:05 -0000 1.20 --- NormalizedEntityPersister.java 8 May 2003 09:39:22 -0000 1.21 *************** *** 190,193 **** --- 190,197 ---- } + public String getSubclassPropertyTableName(int i) { + return subclassTableNameClosure[ subclassPropertyTableNumberClosure[i] ]; + } + public String[] getSubclassPropertyColumnNames(int i) { return subclassPropertyColumnNameClosure[i]; |
From: <one...@us...> - 2003-05-08 09:39:25
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader In directory sc8-pr-cvs1:/tmp/cvs-serv21363/hibernate/loader Modified Files: OneToManyLoader.java OuterJoinLoader.java Log Message: don't outerjoin back to collection owner fix issue with outerjoin load + component + joined-subclass Index: OneToManyLoader.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader/OneToManyLoader.java,v retrieving revision 1.14 retrieving revision 1.15 diff -C2 -d -r1.14 -r1.15 *** OneToManyLoader.java 7 May 2003 15:09:05 -0000 1.14 --- OneToManyLoader.java 8 May 2003 09:39:22 -0000 1.15 *************** *** 4,7 **** --- 4,8 ---- import java.io.Serializable; import java.sql.SQLException; + import java.util.Arrays; import java.util.List; *************** *** 28,31 **** --- 29,37 ---- private final CollectionPersister collectionPersister; private final Type idType; + + protected boolean enableJoinedFetch(String table, String[] foreignKeyColumns) { + return !table.equals( collectionPersister.getQualifiedTableName() ) || + !Arrays.equals( foreignKeyColumns, collectionPersister.getKeyColumnNames() ); + } public OneToManyLoader(CollectionPersister collPersister, SessionFactoryImplementor session) throws MappingException { Index: OuterJoinLoader.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader/OuterJoinLoader.java,v retrieving revision 1.18 retrieving revision 1.19 diff -C2 -d -r1.18 -r1.19 *** OuterJoinLoader.java 7 May 2003 15:09:05 -0000 1.18 --- OuterJoinLoader.java 8 May 2003 09:39:22 -0000 1.19 *************** *** 48,51 **** --- 48,58 ---- } + /** + * Override on subclasses to supress joining of some associations + */ + protected boolean enableJoinedFetch(String table, String[] foreignKeyColumns) { + return true; + } + public static final class OuterJoinableAssociation { public Loadable subpersister; *************** *** 119,128 **** } ! walkTree(etype, columns, persister, alias, associations, classPersisters, session); } } else if ( type.isComponentType() ) { String[] columns = persister.getSubclassPropertyColumnNames(i); ! walkTree( (AbstractComponentType) type, columns, persister, alias, associations, classPersisters, session); } } --- 126,141 ---- } ! if ( enableJoinedFetch( ! persister.getSubclassPropertyTableName(i), ! persister.getSubclassPropertyColumnNames(i) ! ) ) { ! walkTree(etype, columns, persister, alias, associations, classPersisters, session); ! } } } else if ( type.isComponentType() ) { String[] columns = persister.getSubclassPropertyColumnNames(i); ! String[] aliasedColumns = persister.toColumns(alias, i); ! walkTree( (AbstractComponentType) type, i, columns, aliasedColumns, persister, alias, associations, classPersisters, session); } } *************** *** 132,136 **** * For a component, add to a list of associations to be fetched by outerjoin */ ! private void walkTree(AbstractComponentType act, String[] cols, Object persister, String alias, List associations, Set classPersisters, SessionFactoryImplementor session) throws MappingException { if ( !session.enableJoinedFetch() ) return; --- 145,149 ---- * For a component, add to a list of associations to be fetched by outerjoin */ ! private void walkTree(AbstractComponentType act, int propertyNumber, String[] cols, String[] aliasedCols, Loadable persister, String alias, List associations, Set classPersisters, SessionFactoryImplementor session) throws MappingException { if ( !session.enableJoinedFetch() ) return; *************** *** 140,146 **** int length = types[i].getColumnSpan(session); String[] range = ArrayHelper.slice(cols, begin, length); if ( types[i].isEntityType() ) { EntityType etype = (EntityType) types[i]; ! if ( autoEager( act.enableJoinedFetch(i), etype, session ) ) { String[] columns = StringHelper.prefix( range, alias + StringHelper.DOT ); walkTree(etype, columns, persister, alias, associations, classPersisters, session); --- 153,191 ---- int length = types[i].getColumnSpan(session); String[] range = ArrayHelper.slice(cols, begin, length); + String[] aliasedRange = ArrayHelper.slice(aliasedCols, begin, length); if ( types[i].isEntityType() ) { EntityType etype = (EntityType) types[i]; ! if ( ! autoEager( act.enableJoinedFetch(i), etype, session ) && ! enableJoinedFetch( persister.getSubclassPropertyTableName(i), range ) ! ) { ! walkTree(etype, aliasedRange, persister, alias, associations, classPersisters, session); ! } ! } ! else if ( types[i].isComponentType() ) { ! walkTree( (AbstractComponentType) types[i], propertyNumber, range, aliasedRange, persister, alias, associations, classPersisters, session ); ! } ! begin+=length; ! } ! ! } ! ! /** ! * For a composite element, add to a list of associations to be fetched by outerjoin ! */ ! private void walkTree(AbstractComponentType act, String[] cols, CollectionPersister persister, String alias, List associations, Set classPersisters, SessionFactoryImplementor session) throws MappingException { ! if ( !session.enableJoinedFetch() ) return; ! ! Type[] types = act.getSubtypes(); ! int begin = 0; ! for ( int i=0; i <types.length; i++ ) { ! int length = types[i].getColumnSpan(session); ! String[] range = ArrayHelper.slice(cols, begin, length); ! if ( types[i].isEntityType() ) { ! EntityType etype = (EntityType) types[i]; ! if ( ! autoEager( act.enableJoinedFetch(i), etype, session ) && ! enableJoinedFetch( persister.getQualifiedTableName(), range) ! ) { String[] columns = StringHelper.prefix( range, alias + StringHelper.DOT ); walkTree(etype, columns, persister, alias, associations, classPersisters, session); |
From: <one...@us...> - 2003-05-07 15:18:13
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister In directory sc8-pr-cvs1:/tmp/cvs-serv18694/hibernate/persister Modified Files: EntityPersister.java Loadable.java NormalizedEntityPersister.java Log Message: much better fix for problem with normalized mapping and querying associations Index: EntityPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/EntityPersister.java,v retrieving revision 1.26 retrieving revision 1.27 diff -C2 -d -r1.26 -r1.27 *** EntityPersister.java 25 Apr 2003 03:40:35 -0000 1.26 --- EntityPersister.java 7 May 2003 15:09:05 -0000 1.27 *************** *** 898,905 **** } - public String getConcreteClassAlias(String alias) { - return alias; - } - public String fromJoinFragment(String alias, boolean innerJoin, boolean includeSubclasses) { return StringHelper.EMPTY_STRING; --- 898,901 ---- Index: Loadable.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/Loadable.java,v retrieving revision 1.7 retrieving revision 1.8 diff -C2 -d -r1.7 -r1.8 *** Loadable.java 25 Apr 2003 03:40:35 -0000 1.7 --- Loadable.java 7 May 2003 15:09:05 -0000 1.8 *************** *** 16,27 **** /** ! * Get the names of columns used to persist the identifier */ ! public String[] getIdentifierColumnNames(); /** ! * Does this persistent class have subclasses? */ ! public boolean hasSubclasses(); /** --- 16,32 ---- /** ! * Does this persistent class have subclasses? */ ! public boolean hasSubclasses(); /** ! * Get the fully-qualified tablename used to persist this class */ ! public String getTableName(); ! ! /** ! * Get the names of columns used to persist the identifier ! */ ! public String[] getIdentifierColumnNames(); /** *************** *** 47,56 **** //USED BY OuterJoinLoader + subclasses ! ! /** ! * Get the fully-qualified tablename used to persist this class ! */ ! public String getTableName(); ! /** * How many properties are there, for this class and all subclasses? --- 52,56 ---- //USED BY OuterJoinLoader + subclasses ! /** * How many properties are there, for this class and all subclasses? *************** *** 90,99 **** /** - * Get the table alias for the particular subclass state - * (optional operation) - */ - public String getConcreteClassAlias(String alias); - - /** * Given a query alias and an identifying suffix, render the * intentifier select fragment --- 90,93 ---- *************** *** 121,125 **** */ public String fromJoinFragment(String alias, boolean innerJoin, boolean includeSubclasses); ! } --- 115,119 ---- */ public String fromJoinFragment(String alias, boolean innerJoin, boolean includeSubclasses); ! } Index: NormalizedEntityPersister.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/NormalizedEntityPersister.java,v retrieving revision 1.19 retrieving revision 1.20 diff -C2 -d -r1.19 -r1.20 *** NormalizedEntityPersister.java 25 Apr 2003 03:40:35 -0000 1.19 --- NormalizedEntityPersister.java 7 May 2003 15:09:05 -0000 1.20 *************** *** 65,69 **** --- 65,71 ---- private final String qualifiedTableName; private final String[] tableNames; + private final String[] naturalOrderTableNames; private final String[][] tableKeyColumns; + private final String[][] naturalOrderTableKeyColumns; private final Class[] subclassClosure; *************** *** 81,84 **** --- 83,87 ---- private final int[] propertyColumnSpans; private final int[] propertyTables; + private final int[] naturalOrderPropertyTables; private final boolean[] propertyHasColumns; private final String[][] propertyColumnNames; *************** *** 105,109 **** // values in the outer join using an SQL CASE private final HashMap subclassesByDiscriminatorValue = new HashMap(); ! private final String[] discriminators; private final String[] notNullColumns; private final int[] tableNumbers; --- 108,112 ---- // values in the outer join using an SQL CASE private final HashMap subclassesByDiscriminatorValue = new HashMap(); ! private final String[] discriminatorValues; private final String[] notNullColumns; private final int[] tableNumbers; *************** *** 176,183 **** } - public String getTableName() { - return qualifiedTableName; - } - public String getDiscriminatorColumnName() { return discriminatorColumnName; --- 179,182 ---- *************** *** 263,271 **** */ protected String[] generateDeleteStrings() { ! String[] result = new String[ tableNames.length ]; ! for ( int i=0; i<tableNames.length; i++ ) { Delete delete = new Delete() ! .setTableName( tableNames[i] ) ! .setPrimaryKeyColumnNames( tableKeyColumns[i] ); if (i==0) delete.setVersionColumnName( getVersionColumnName() ); result[i] = delete.toStatementString(); --- 262,270 ---- */ protected String[] generateDeleteStrings() { ! String[] result = new String[ naturalOrderTableNames.length ]; ! for ( int i=0; i<naturalOrderTableNames.length; i++ ) { Delete delete = new Delete() ! .setTableName( naturalOrderTableNames[i] ) ! .setPrimaryKeyColumnNames( naturalOrderTableKeyColumns[i] ); if (i==0) delete.setVersionColumnName( getVersionColumnName() ); result[i] = delete.toStatementString(); *************** *** 279,290 **** protected String[] generateInsertStrings(boolean identityInsert, boolean[] includeProperty) { ! String[] result = new String[tableNames.length]; ! for ( int j=0; j<tableNames.length; j++ ) { Insert insert = new Insert(dialect) ! .setTableName( tableNames[j] ); for (int i=0; i<getPropertyTypes().length; i++) { ! if ( includeProperty[i] && propertyTables[i]==j ) { insert.addColumns( propertyColumnNames[i] ); } --- 278,289 ---- protected String[] generateInsertStrings(boolean identityInsert, boolean[] includeProperty) { ! String[] result = new String[naturalOrderTableNames.length]; ! for ( int j=0; j<naturalOrderTableNames.length; j++ ) { Insert insert = new Insert(dialect) ! .setTableName( naturalOrderTableNames[j] ); for (int i=0; i<getPropertyTypes().length; i++) { ! if ( includeProperty[i] && naturalOrderPropertyTables[i]==j ) { insert.addColumns( propertyColumnNames[i] ); } *************** *** 292,299 **** if (identityInsert && j==0) { ! insert.addIdentityColumn( tableKeyColumns[j][0] ); } else { ! insert.addColumns( tableKeyColumns[j] ); } --- 291,298 ---- if (identityInsert && j==0) { ! insert.addIdentityColumn( naturalOrderTableKeyColumns[j][0] ); } else { ! insert.addColumns( naturalOrderTableKeyColumns[j] ); } *************** *** 308,316 **** */ protected String[] generateUpdateStrings(boolean[] includeProperty) { ! String[] result = new String[ tableNames.length ]; ! for ( int j=0; j<tableNames.length; j++ ) { Update update = new Update() ! .setTableName( tableNames[j] ) ! .setPrimaryKeyColumnNames( tableKeyColumns[j] ); if (j==0) update.setVersionColumnName( getVersionColumnName() ); --- 307,315 ---- */ protected String[] generateUpdateStrings(boolean[] includeProperty) { ! String[] result = new String[ naturalOrderTableNames.length ]; ! for ( int j=0; j<naturalOrderTableNames.length; j++ ) { Update update = new Update() ! .setTableName( naturalOrderTableNames[j] ) ! .setPrimaryKeyColumnNames( naturalOrderTableKeyColumns[j] ); if (j==0) update.setVersionColumnName( getVersionColumnName() ); *************** *** 318,322 **** boolean hasColumns = false; for (int i=0; i<propertyColumnNames.length; i++) { ! if ( includeProperty[i] && propertyTables[i]==j ) { update.addColumns( propertyColumnNames[i] ); hasColumns = hasColumns || propertyColumnNames[i].length > 0; --- 317,321 ---- boolean hasColumns = false; for (int i=0; i<propertyColumnNames.length; i++) { ! if ( includeProperty[i] && naturalOrderPropertyTables[i]==j ) { update.addColumns( propertyColumnNames[i] ); hasColumns = hasColumns || propertyColumnNames[i].length > 0; *************** *** 334,340 **** protected String generateLockString() { SimpleSelect select = new SimpleSelect() ! .setTableName( getTableName() ) ! .addColumn( getIdentifierColumnNames()[0] ) ! .addCondition( getIdentifierColumnNames(), "=?" ); if ( isVersioned() ) { select.addWhereToken("and") --- 333,339 ---- protected String generateLockString() { SimpleSelect select = new SimpleSelect() ! .setTableName(qualifiedTableName) ! .addColumn( super.getIdentifierColumnNames()[0] ) ! .addCondition( super.getIdentifierColumnNames(), "=?" ); if ( isVersioned() ) { select.addWhereToken("and") *************** *** 370,374 **** for (int j=0; j<hydrateSpan; j++) { ! if ( includeProperty[j] && propertyTables[j]==table ) { getPropertyTypes()[j].nullSafeSet( statement, fields[j], index, session ); index += propertyColumnSpans[j]; --- 369,373 ---- for (int j=0; j<hydrateSpan; j++) { ! if ( includeProperty[j] && naturalOrderPropertyTables[j]==table ) { getPropertyTypes()[j].nullSafeSet( statement, fields[j], index, session ); index += propertyColumnSpans[j]; *************** *** 528,532 **** } ! for ( int i=1; i<tableNames.length; i++ ) { statement = session.getBatcher().prepareStatement( sql[i] ); --- 527,531 ---- } ! for ( int i=1; i<naturalOrderTableNames.length; i++ ) { statement = session.getBatcher().prepareStatement( sql[i] ); *************** *** 560,567 **** } ! final PreparedStatement[] statements = new PreparedStatement[tableNames.length]; try { ! for ( int i=0; i<tableNames.length; i++ ) { statements[i] = session.getBatcher().prepareStatement( getSQLDeleteStrings()[i] ); } --- 559,566 ---- } ! final PreparedStatement[] statements = new PreparedStatement[naturalOrderTableNames.length]; try { ! for ( int i=0; i<naturalOrderTableNames.length; i++ ) { statements[i] = session.getBatcher().prepareStatement( getSQLDeleteStrings()[i] ); } *************** *** 569,573 **** if ( isVersioned() ) getVersionType().nullSafeSet( statements[0], version, getIdentifierColumnNames().length + 1, session ); ! for ( int i=tableNames.length-1; i>=0; i-- ) { // Do the key. The key is immutable so we can use the _current_ object state - not necessarily --- 568,572 ---- if ( isVersioned() ) getVersionType().nullSafeSet( statements[0], version, getIdentifierColumnNames().length + 1, session ); ! for ( int i=naturalOrderTableNames.length-1; i>=0; i-- ) { // Do the key. The key is immutable so we can use the _current_ object state - not necessarily *************** *** 586,590 **** } finally { ! for ( int i=0; i<tableNames.length; i++ ) { if ( statements[i]!=null ) session.getBatcher().closeStatement( statements[i] ); } --- 585,589 ---- } finally { ! for ( int i=0; i<naturalOrderTableNames.length; i++ ) { if ( statements[i]!=null ) session.getBatcher().closeStatement( statements[i] ); } *************** *** 602,608 **** } else { ! tableUpdateNeeded = new boolean[tableNames.length]; for ( int i=0; i<dirtyFields.length; i++ ) { ! tableUpdateNeeded[ propertyTables[ dirtyFields[i] ] ] = true; } if ( isVersioned() ) tableUpdateNeeded[0] = true; --- 601,607 ---- } else { ! tableUpdateNeeded = new boolean[naturalOrderTableNames.length]; for ( int i=0; i<dirtyFields.length; i++ ) { ! tableUpdateNeeded[ naturalOrderPropertyTables[ dirtyFields[i] ] ] = true; } if ( isVersioned() ) tableUpdateNeeded[0] = true; *************** *** 632,636 **** } ! int tables = tableNames.length; final PreparedStatement[] statements = new PreparedStatement[tables]; --- 631,635 ---- } ! int tables = naturalOrderTableNames.length; final PreparedStatement[] statements = new PreparedStatement[tables]; *************** *** 700,704 **** ArrayList keyColumns = new ArrayList(); tables.add(qualifiedTableName); ! keyColumns.add( getIdentifierColumnNames() ); int idColumnSpan = getIdentifierType().getColumnSpan(factory); --- 699,703 ---- ArrayList keyColumns = new ArrayList(); tables.add(qualifiedTableName); ! keyColumns.add( super.getIdentifierColumnNames() ); int idColumnSpan = getIdentifierType().getColumnSpan(factory); *************** *** 715,725 **** } } ! tableNames = (String[]) tables.toArray( new String[0] ); ! tableKeyColumns = (String[][]) keyColumns.toArray( new String[0][] ); ArrayList subtables = new ArrayList(); keyColumns = new ArrayList(); subtables.add(qualifiedTableName); ! keyColumns.add( getIdentifierColumnNames() ); titer = model.getSubclassTableClosureIterator(); while ( titer.hasNext() ) { --- 714,724 ---- } } ! naturalOrderTableNames = (String[]) tables.toArray( new String[0] ); ! naturalOrderTableKeyColumns = (String[][]) keyColumns.toArray( new String[0][] ); ArrayList subtables = new ArrayList(); keyColumns = new ArrayList(); subtables.add(qualifiedTableName); ! keyColumns.add( super.getIdentifierColumnNames() ); titer = model.getSubclassTableClosureIterator(); while ( titer.hasNext() ) { *************** *** 741,747 **** --- 740,753 ---- } + int len = naturalOrderTableNames.length; + tableNames = reverse(naturalOrderTableNames); + tableKeyColumns = reverse(naturalOrderTableKeyColumns); + reverse(subclassTableNameClosure, len); + reverse(subclassTableKeyColumns, len); + // PROPERTIES propertyTables = new int[hydrateSpan]; + naturalOrderPropertyTables = new int[hydrateSpan]; propertyColumnNames = new String[hydrateSpan][]; propertyColumnNameAliases = new String[hydrateSpan][]; *************** *** 759,762 **** --- 765,769 ---- String tabname = tab.getQualifiedName( factory.getDefaultSchema() ); propertyTables[i] = getTableId(tabname, tableNames); + naturalOrderPropertyTables[i] = getTableId(tabname, naturalOrderTableNames); propertyColumnSpans[i] = prop.getColumnSpan(); *************** *** 849,864 **** if ( model.isPolymorphic() ) { subclassesByDiscriminatorValue.put(discriminatorValue, mappedClass); ! discriminators = new String[subclassSpan]; ! discriminators[subclassSpan-1] = discriminatorSQLString; tableNumbers = new int[subclassSpan]; ! tableNumbers[subclassSpan-1] = getTableId( model.getTable().getQualifiedName( factory.getDefaultSchema() ), subclassTableNameClosure ); notNullColumns = new String[subclassSpan]; ! notNullColumns[subclassSpan-1] = ( (Column) model.getTable().getPrimaryKey().getColumnIterator().next() ).getName(); } else { ! discriminators = null; tableNumbers = null; notNullColumns = null; --- 856,872 ---- if ( model.isPolymorphic() ) { subclassesByDiscriminatorValue.put(discriminatorValue, mappedClass); ! discriminatorValues = new String[subclassSpan]; ! discriminatorValues[subclassSpan-1] = discriminatorSQLString; tableNumbers = new int[subclassSpan]; ! int id = getTableId( model.getTable().getQualifiedName( factory.getDefaultSchema() ), subclassTableNameClosure ); + tableNumbers[subclassSpan-1] = id; notNullColumns = new String[subclassSpan]; ! notNullColumns[subclassSpan-1] = subclassTableKeyColumns[id][0]; //( (Column) model.getTable().getPrimaryKey().getColumnIterator().next() ).getName(); } else { ! discriminatorValues = null; tableNumbers = null; notNullColumns = null; *************** *** 874,883 **** Object disc = new Integer(k+1); subclassesByDiscriminatorValue.put( disc, sc.getPersistentClass() ); ! discriminators[k] = disc.toString(); ! tableNumbers[k] = getTableId( sc.getTable().getQualifiedName( factory.getDefaultSchema() ), subclassTableNameClosure ); ! notNullColumns[k] = ( (Column) sc.getTable().getPrimaryKey().getColumnIterator().next() ).getName(); } } --- 882,892 ---- Object disc = new Integer(k+1); subclassesByDiscriminatorValue.put( disc, sc.getPersistentClass() ); ! discriminatorValues[k] = disc.toString(); ! int id = getTableId( sc.getTable().getQualifiedName( factory.getDefaultSchema() ), subclassTableNameClosure ); ! tableNumbers[k] = id; ! notNullColumns[k] = subclassTableKeyColumns[id][0]; //( (Column) sc.getTable().getPrimaryKey().getColumnIterator().next() ).getName(); } } *************** *** 897,900 **** --- 906,945 ---- } + + private static final void reverse(Object[] objects, int len) { + Object[] temp = new Object[len]; + for (int i=0; i<len; i++) { + temp[i] = objects[len-i-1]; + } + for (int i=0; i<len; i++) { + objects[i] = temp[i]; + } + } + + private static final String[] reverse(String[] objects) { + int len = objects.length; + String[] temp = new String[len]; + for (int i=0; i<len; i++) { + temp[i] = objects[len-i-1]; + } + return temp; + } + + private static final String[][] reverse(String[][] objects) { + int len = objects.length; + String[][] temp = new String[len][]; + for (int i=0; i<len; i++) { + temp[i] = objects[len-i-1]; + } + return temp; + } + + private static final int[] reverse(int[] objects) { + int[] temp = new int[objects.length]; + for (int i=0; i<objects.length; i++) { + temp[i] = objects[objects.length-i-1]; + } + return temp; + } private void initPropertyPaths(Mapping mapping) throws MappingException { *************** *** 946,949 **** --- 991,998 ---- } + public String getTableName() { + return subclassTableNameClosure[0]; + } + private JoinFragment outerjoin(String name, boolean innerJoin, boolean includeSubclasses) { JoinFragment outerjoin = factory.getDialect().createOuterJoinFragment(); *************** *** 955,959 **** StringHelper.prefix( getIdentifierColumnNames(), name + StringHelper.DOT ), subclassTableKeyColumns[i], ! innerJoin && isClassOrSuperclassTable[i] ? JoinFragment.INNER_JOIN : JoinFragment.LEFT_OUTER_JOIN ); } --- 1004,1010 ---- StringHelper.prefix( getIdentifierColumnNames(), name + StringHelper.DOT ), subclassTableKeyColumns[i], ! innerJoin && isClassOrSuperclassTable[i] ? ! JoinFragment.INNER_JOIN : ! JoinFragment.LEFT_OUTER_JOIN ); } *************** *** 1033,1041 **** CaseFragment cases = dialect.createCaseFragment(); ! for ( int i=0; i< discriminators.length; i++ ) { cases.addWhenColumnNotNull( alias( alias, tableNumbers[i] ), notNullColumns[i], ! discriminators[i] ); } --- 1084,1092 ---- CaseFragment cases = dialect.createCaseFragment(); ! for ( int i=0; i< discriminatorValues.length; i++ ) { cases.addWhenColumnNotNull( alias( alias, tableNumbers[i] ), notNullColumns[i], ! discriminatorValues[i] ); } *************** *** 1049,1057 **** } - public String getConcreteClassAlias(String alias) { - int tab = tableNumbers[ tableNumbers.length-1 ]; - return alias + ( (tab==0) ? StringHelper.EMPTY_STRING : StringHelper.UNDERSCORE +Integer.toString(tab) ); - } - public String fromJoinFragment(String alias, boolean innerJoin, boolean includeSubclasses) { return outerjoin(alias, innerJoin, includeSubclasses).toFromFragmentString(); --- 1100,1103 ---- *************** *** 1064,1067 **** --- 1110,1117 ---- public String queryWhereFragment(String alias, boolean innerJoin, boolean includeSubclasses) throws MappingException { return whereJoinFragment(alias, innerJoin, includeSubclasses); + } + + public String[] getIdentifierColumnNames() { + return tableKeyColumns[0]; } |
From: <one...@us...> - 2003-05-07 15:18:11
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql In directory sc8-pr-cvs1:/tmp/cvs-serv18694/hibernate/sql Modified Files: QueryJoinFragment.java Log Message: much better fix for problem with normalized mapping and querying associations Index: QueryJoinFragment.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql/QueryJoinFragment.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** QueryJoinFragment.java 3 May 2003 07:06:27 -0000 1.4 --- QueryJoinFragment.java 7 May 2003 15:09:06 -0000 1.5 *************** *** 19,23 **** } ! public void addJoin(String tableName, String alias, String concreteAlias, String[] fkColumns, String[] pkColumns, int joinType) { if (joinType!=INNER_JOIN) { //TODO: get right impl for dialect --- 19,23 ---- } ! private void addJoin(String tableName, String alias, String concreteAlias, String[] fkColumns, String[] pkColumns, int joinType) { if (joinType!=INNER_JOIN) { //TODO: get right impl for dialect |
From: <one...@us...> - 2003-05-07 15:09:10
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/hbm2java In directory sc8-pr-cvs1:/tmp/cvs-serv18694/hibernate/tool/hbm2java Modified Files: BasicRenderer.java Log Message: much better fix for problem with normalized mapping and querying associations Index: BasicRenderer.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/tool/hbm2java/BasicRenderer.java,v retrieving revision 1.16 retrieving revision 1.17 diff -C2 -d -r1.16 -r1.17 *** BasicRenderer.java 4 May 2003 10:32:02 -0000 1.16 --- BasicRenderer.java 7 May 2003 15:09:06 -0000 1.17 *************** *** 4,8 **** import java.io.PrintWriter; import java.io.StringWriter; - import java.util.Collection; import java.util.HashMap; import java.util.Iterator; --- 4,7 ---- |