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: <max...@us...> - 2006-02-09 18:32:47
|
Update of /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12606/test/org/hibernate/test/sql Modified Files: GeneralTest.java General.hbm.xml Log Message: cleaned up hand sql tests so the general and portable code is run on all databases and only the truly db specific test cases are limited to specific dbs (such as stored procedures and custom sql) Index: GeneralTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/GeneralTest.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- GeneralTest.java 9 Feb 2006 17:26:48 -0000 1.2 +++ GeneralTest.java 9 Feb 2006 18:32:39 -0000 1.3 @@ -23,18 +23,18 @@ } protected String getOrganizationFetchJoinEmploymentSQL() { - return "SELECT org.orgid as {org.id}, " + - " org.name as {org.name}, " + - " emp.employer as {emp.key}, " + - " emp.empid as {emp.element}, " + + return "SELECT org.ORGID as {org.id}, " + + " org.NAME as {org.name}, " + + " emp.EMPLOYER as {emp.key}, " + + " emp.EMPID as {emp.element}, " + " {emp.element.*} " + "FROM ORGANIZATION org " + " LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER"; } protected String getOrganizationJoinEmploymentSQL() { - return "SELECT org.orgid as {org.id}, " + - " org.name as {org.name}, " + + return "SELECT org.ORGID as {org.id}, " + + " org.NAME as {org.name}, " + " {emp.*} " + "FROM ORGANIZATION org " + " LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER"; Index: General.hbm.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/General.hbm.xml,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- General.hbm.xml 9 Feb 2006 17:26:49 -0000 1.2 +++ General.hbm.xml 9 Feb 2006 18:32:39 -0000 1.3 @@ -13,34 +13,34 @@ <hibernate-mapping package="org.hibernate.test.sql" default-access="field"> - <class name="Organization"> - <id name="id" unsaved-value="0" column="orgid"> + <class name="Organization" table="ORGANIZATION"> + <id name="id" unsaved-value="0" column="ORGID"> <generator class="increment"/> </id> - <property name="name" not-null="true"/> + <property name="name" column="NAME" not-null="true"/> <set lazy="true" name="employments" inverse="true"> - <key column="employer"/> <!-- only needed for DDL generation --> + <key column="EMPLOYER"/> <!-- only needed for DDL generation --> <one-to-many class="Employment"/> </set> </class> - <class name="Person"> - <id name="id" unsaved-value="0" column="perid"> + <class name="Person" table="PERSON"> + <id name="id" unsaved-value="0" column="PERID"> <generator class="increment"/> </id> - <property name="name" not-null="true"/> + <property name="name" column="NAME" not-null="true"/> </class> - <class name="Employment"> - <id name="employmentId" unsaved-value="0" column="empid"> + <class name="Employment" table="EMPLOYMENT"> + <id name="employmentId" unsaved-value="0" column="EMPID"> <generator class="increment"/> </id> - <many-to-one name="employee" not-null="true" update="false"/> - <many-to-one name="employer" not-null="true" update="false"/> - <property name="startDate" not-null="false"/> - <property name="endDate" insert="false"/> - <property name="regionCode" update="false"/> + <many-to-one name="employee" column="EMPLOYEE" not-null="true" update="false"/> + <many-to-one name="employer" column="EMPLOYER" not-null="true" update="false"/> + <property name="startDate" column="STARTDATE" not-null="false"/> + <property name="endDate" column="ENDDATE" insert="false"/> + <property name="regionCode" column="REGIONCODE" update="false"/> <property name="salary" type="org.hibernate.test.sql.MonetaryAmountUserType"> <column name="VALUE" sql-type="float"/> <column name="CURRENCY"/> @@ -102,12 +102,12 @@ <sql-query name="EmploymentAndPerson"> <return class="Employment"/> <return class="Person"/> - SELECT * FROM Employment, Person + SELECT * FROM EMPLOYMENT, PERSON </sql-query> <sql-query name="organizationEmploymentsExplicitAliases"> <load-collection alias="empcol" role="Organization.employments"/> - SELECT empcol.employer as {empcol.key}, empcol.empid as {empcol.element}, {empcol.element.*} + SELECT empcol.EMPLOYER as {empcol.key}, empcol.EMPID as {empcol.element}, {empcol.element.*} FROM EMPLOYMENT empcol WHERE EMPLOYER = :id ORDER BY STARTDATE ASC, EMPLOYEE ASC @@ -115,12 +115,12 @@ <sql-query name="organizationreturnproperty"> <return alias="org" class="Organization"> - <return-property name="id" column="orgid"/> - <return-property name="name" column="name"/> + <return-property name="id" column="ORGID"/> + <return-property name="name" column="NAME"/> </return> <return-join alias="emp" property="org.employments"> - <return-property name="key" column="employer"/> - <return-property name="element" column="empid"/> + <return-property name="key" column="EMPLOYER"/> + <return-property name="element" column="EMPID"/> <return-property name="element.employee" column="EMPLOYEE"/> <return-property name="element.employer" column="EMPLOYER"/> <return-property name="element.startDate" column="XSTARTDATE"/> @@ -132,8 +132,7 @@ <return-column name="CURRENCY"/> </return-property> </return-join> - SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as xstartDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY - FROM ORGANIZATION org + SELECT org.ORGID as orgid, org.NAME as name, emp.EMPLOYER as employer, emp.EMPID as empid, emp.EMPLOYEE as employee, emp.EMPLOYER as employer, emp.STARTDATE as xstartDate, emp.ENDDATE as endDate, emp.REGIONCODE as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER </sql-query> @@ -142,7 +141,7 @@ <!-- equal to "organizationpropertyreturn" but since no {} nor return-property are used hibernate will fallback to use the columns directly from the mapping --> <return alias="org" class="Organization"/> <return-join alias="emp" property="org.employments"/> - SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as startDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY + SELECT org.ORGID as orgid, org.NAME as name, emp.EMPLOYER as employer, emp.EMPID as empid, emp.EMPLOYEE as employee, emp.EMPLOYER as employer, emp.STARTDATE as startDate, emp.ENDDATE as endDate, emp.REGIONCODE as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER </sql-query> |
From: <max...@us...> - 2006-02-09 17:31:00
|
Update of /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv13905/test/org/hibernate/test/sql Modified Files: Tag: Branch_3_1 MSSQLTest.java GeneralTest.java OracleSQLTest.java General.hbm.xml HandSQLTest.java OracleEmployment.hbm.xml MSSQLEmployment.hbm.xml MySQLEmployment.hbm.xml Log Message: merged the sql tests on to HEAD Index: MSSQLTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/MSSQLTest.java,v retrieving revision 1.9 retrieving revision 1.9.2.1 diff -u -d -r1.9 -r1.9.2.1 --- MSSQLTest.java 10 Jan 2006 23:04:27 -0000 1.9 +++ MSSQLTest.java 9 Feb 2006 17:30:48 -0000 1.9.2.1 @@ -1,26 +1,11 @@ //$Id$ package org.hibernate.test.sql; -import java.io.Serializable; -import java.sql.SQLException; -import java.util.Date; -import java.util.Iterator; -import java.util.List; - import junit.framework.Test; import junit.framework.TestSuite; -import org.hibernate.Hibernate; -import org.hibernate.HibernateException; -import org.hibernate.LockMode; -import org.hibernate.Query; -import org.hibernate.Session; -import org.hibernate.Transaction; -import org.hibernate.dialect.DB2Dialect; -import org.hibernate.dialect.MySQLDialect; -import org.hibernate.dialect.SybaseDialect; import org.hibernate.dialect.Dialect; -import org.hibernate.test.TestCase; +import org.hibernate.dialect.SybaseDialect; /** * @author Gavin King @@ -42,6 +27,5 @@ public boolean appliesTo(Dialect dialect) { return ( dialect instanceof SybaseDialect ); } - } Index: GeneralTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/GeneralTest.java,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -d -r1.1 -r1.1.2.1 --- GeneralTest.java 10 Jan 2006 23:04:27 -0000 1.1 +++ GeneralTest.java 9 Feb 2006 17:30:48 -0000 1.1.2.1 @@ -1,8 +1,15 @@ package org.hibernate.test.sql; +import java.io.Serializable; +import java.util.Iterator; +import java.util.List; + import org.hibernate.test.TestCase; +import org.hibernate.Hibernate; +import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.HibernateException; +import org.hibernate.Transaction; /** * @author Steve Ebersole @@ -15,6 +22,42 @@ super( x ); } + protected String getOrganizationFetchJoinEmploymentSQL() { + return "SELECT org.orgid as {org.id}, " + + " org.name as {org.name}, " + + " emp.employer as {emp.key}, " + + " emp.empid as {emp.element}, " + + " {emp.element.*} " + + "FROM ORGANIZATION org " + + " LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER"; + } + + protected String getOrganizationJoinEmploymentSQL() { + return "SELECT org.orgid as {org.id}, " + + " org.name as {org.name}, " + + " {emp.*} " + + "FROM ORGANIZATION org " + + " LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER"; + } + + protected String getEmploymentSQL() { + return "SELECT * FROM EMPLOYMENT"; + } + + protected String getOrgEmpRegionSQL() { + return "select {org.*}, {emp.*}, emp.REGIONCODE " + + "from ORGANIZATION org " + + " left outer join EMPLOYMENT emp on org.ORGID = emp.EMPLOYER"; + } + + protected String getOrgEmpPersonSQL() { + return "select {org.*}, {emp.*}, {pers.*} " + + "from ORGANIZATION org " + + " join EMPLOYMENT emp on org.ORGID = emp.EMPLOYER " + + " join PERSON pers on pers.PERID = emp.EMPLOYEE "; + } + + protected String[] getMappings() { return new String[] { "sql/General.hbm.xml" }; } @@ -38,4 +81,304 @@ s.close(); } } + + public void testSQLQueryInterface() { + Session s = openSession(); + Transaction t = s.beginTransaction(); + Organization ifa = new Organization("IFA"); + Organization jboss = new Organization("JBoss"); + Person gavin = new Person("Gavin"); + Employment emp = new Employment(gavin, jboss, "AU"); + + s.persist(ifa); + s.persist(jboss); + s.persist(gavin); + s.persist(emp); + + List l = s.createSQLQuery( getOrgEmpRegionSQL() ) + .addEntity("org", Organization.class) + .addJoin("emp", "org.employments") + .addScalar("regionCode", Hibernate.STRING) + .list(); +// List l = s.createSQLQuery("select {org.*}, {emp.*}, emp.regionCode from organization org left outer join employment emp on org.orgid = emp.employer") +// .addEntity("org", Organization.class) +// .addJoin("emp", "org.employments") +// .addScalar("regionCode", Hibernate.STRING) +// .list(); + assertEquals( l.size(), 2 ); + + l = s.createSQLQuery( getOrgEmpPersonSQL() ) + .addEntity("org", Organization.class) + .addJoin("emp", "org.employments") + .addJoin("pers", "emp.employee") + .list(); +// l = s.createSQLQuery("select {org.*}, {emp.*}, {pers.*} from organization org join employment emp on org.orgid = emp.employer join person pers on pers.perid = emp.employee") +// .addEntity("org", Organization.class) +// .addJoin("emp", "org.employments") +// .addJoin("pers", "emp.employee") +// .list(); + assertEquals( l.size(), 1 ); + + s.delete(emp); + s.delete(gavin); + s.delete(ifa); + s.delete(jboss); + + t.commit(); + s.close(); + } + + public void testResultSetMappingDefinition() { + Session s = openSession(); + Transaction t = s.beginTransaction(); + Organization ifa = new Organization("IFA"); + Organization jboss = new Organization("JBoss"); + Person gavin = new Person("Gavin"); + Employment emp = new Employment(gavin, jboss, "AU"); + + s.persist(ifa); + s.persist(jboss); + s.persist(gavin); + s.persist(emp); + + List l = s.createSQLQuery( getOrgEmpRegionSQL() ) + .setResultSetMapping( "org-emp-regionCode" ) + .list(); +// List l = s.createSQLQuery("select {org.*}, {emp.*}, emp.regionCode from organization org left outer join employment emp on org.orgid = emp.employer") +// .setResultSetMapping( "org-emp-regionCode") +// .list(); + assertEquals( l.size(), 2 ); + + l = s.createSQLQuery( getOrgEmpPersonSQL() ) + .setResultSetMapping( "org-emp-person" ) + .list(); +// l = s.createSQLQuery("select {org.*}, {emp.*}, {pers.*} from organization org join employment emp on org.orgid = emp.employer join person pers on pers.perid = emp.employee") +// .setResultSetMapping( "org-emp-person" ) +// .list(); + assertEquals( l.size(), 1 ); + + s.delete(emp); + s.delete(gavin); + s.delete(ifa); + s.delete(jboss); + + t.commit(); + s.close(); + } + + public void testScalarValues() throws Exception { + Session s = openSession(); + Transaction t = s.beginTransaction(); + + Organization ifa = new Organization( "IFA" ); + Organization jboss = new Organization( "JBoss" ); + + Serializable idIfa = s.save( ifa ); + Serializable idJBoss = s.save( jboss ); + + s.flush(); + + List result = s.getNamedQuery( "orgNamesOnly" ).list(); + assertTrue( result.contains( "IFA" ) ); + assertTrue( result.contains( "JBoss" ) ); + + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + + Iterator iter = s.getNamedQuery( "orgNamesAndOrgs" ).list().iterator(); + Object[] o = ( Object[] ) iter.next(); + assertEquals( o[0], "IFA" ); + assertEquals( ( ( Organization ) o[1] ).getName(), "IFA" ); + o = ( Object[] ) iter.next(); + assertEquals( o[0], "JBoss" ); + assertEquals( ( ( Organization ) o[1] ).getName(), "JBoss" ); + + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + + iter = s.getNamedQuery( "orgsAndOrgNames" ).list().iterator(); + o = ( Object[] ) iter.next(); + assertEquals( o[0], "IFA" ); + assertEquals( ( ( Organization ) o[1] ).getName(), "IFA" ); + o = ( Object[] ) iter.next(); + assertEquals( o[0], "JBoss" ); + assertEquals( ( ( Organization ) o[1] ).getName(), "JBoss" ); + + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + + iter = s.getNamedQuery( "orgIdsAndOrgNames" ).list().iterator(); + o = ( Object[] ) iter.next(); + assertEquals( o[1], "IFA" ); + assertEquals( o[0], idIfa ); + o = ( Object[] ) iter.next(); + assertEquals( o[1], "JBoss" ); + assertEquals( o[0], idJBoss ); + + s.delete( ifa ); + s.delete( jboss ); + t.commit(); + s.close(); + } + + public void testMappedAliasStrategy() { + Session s = openSession(); + Transaction t = s.beginTransaction(); + Organization ifa = new Organization("IFA"); + Organization jboss = new Organization("JBoss"); + Person gavin = new Person("Gavin"); + Employment emp = new Employment(gavin, jboss, "AU"); + Serializable orgId = s.save(jboss); + Serializable orgId2 = s.save(ifa); + s.save(gavin); + s.save(emp); + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + Query namedQuery = s.getNamedQuery("AllEmploymentAsMapped"); + List list = namedQuery.list(); + assertEquals(1,list.size()); + Employment emp2 = (Employment) list.get(0); + assertEquals(emp2.getEmploymentId(), emp.getEmploymentId() ); + assertEquals(emp2.getStartDate().getDate(), emp.getStartDate().getDate() ); + assertEquals(emp2.getEndDate(), emp.getEndDate() ); + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + namedQuery = s.getNamedQuery("EmploymentAndPerson"); + list = namedQuery.list(); + assertEquals(1,list.size() ); + Object[] objs = (Object[]) list.get(0); + assertEquals(2, objs.length); + emp2 = (Employment) objs[0]; + gavin = (Person) objs[1]; + s.delete(emp2); + s.delete(jboss); + s.delete(gavin); + s.delete(ifa); + t.commit(); + s.close(); + } + + public void testAutoDetectAliasing() { + Session s = openSession(); + Transaction t = s.beginTransaction(); + Organization ifa = new Organization("IFA"); + Organization jboss = new Organization("JBoss"); + Person gavin = new Person("Gavin"); + Employment emp = new Employment(gavin, jboss, "AU"); + Serializable orgId = s.save(jboss); + Serializable orgId2 = s.save(ifa); + s.save(gavin); + s.save(emp); + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + List list = s.createSQLQuery( getEmploymentSQL() ) + .addEntity( Employment.class.getName() ) + .list(); +// Query namedQuery = s.createSQLQuery("SELECT * FROM EMPLOYMENT").addEntity( Employment.class.getName() ); +// List list = namedQuery.list(); + assertEquals( 1,list.size() ); + + Employment emp2 = (Employment) list.get(0); + assertEquals(emp2.getEmploymentId(), emp.getEmploymentId() ); + assertEquals(emp2.getStartDate().getDate(), emp.getStartDate().getDate() ); + assertEquals(emp2.getEndDate(), emp.getEndDate() ); + + s.clear(); + + Query queryWithCollection = s.getNamedQuery("organizationEmploymentsExplicitAliases"); + queryWithCollection.setLong("id", jboss.getId() ); + list = queryWithCollection.list(); + assertEquals(list.size(),1); + + s.clear(); + + list = s.createSQLQuery( getOrganizationJoinEmploymentSQL() ) + .addEntity( "org", Organization.class ) + .addJoin( "emp", "org.employments" ) + .list(); +// Query queryWithJoin = s.createSQLQuery( +// "SELECT org.orgid as {org.id}, org.name as {org.name}, {emp.*} FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER ") +// .addEntity("org", Organization.class).addJoin("emp", "org.employments"); +// +// queryWithJoin.list(); +// list = queryWithJoin.list(); + assertEquals( 2,list.size() ); + + s.clear(); + + list = s.createSQLQuery( getOrganizationFetchJoinEmploymentSQL() ) + .addEntity( "org", Organization.class ) + .addJoin( "emp", "org.employments" ) + .list(); +// queryWithJoin = s.createSQLQuery( +// "SELECT org.orgid as {org.id}, org.name as {org.name}, emp.employer as {emp.key}, emp.empid as {emp.element}, {emp.element.*} FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER ") +// .addEntity("org", Organization.class).addJoin("emp", "org.employments"); +// +// list = queryWithJoin.list(); +// assertEquals( 2,list.size() ); +// +// s.clear(); +// +// queryWithJoin = s.createSQLQuery( +// "SELECT org.orgid as {org.id}, org.name as {org.name}, emp.employer as {emp.key}, emp.empid as {emp.element}, {emp.element.*} FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER ") +// .addEntity("org", Organization.class).addJoin("emp", "org.employments"); +// +// list = queryWithJoin.list(); + assertEquals( 2,list.size() ); + + s.clear(); + + // TODO : why twice? + s.getNamedQuery( "organizationreturnproperty" ).list(); + list = s.getNamedQuery( "organizationreturnproperty" ).list(); +// queryWithJoin = s.getNamedQuery("organizationreturnproperty"); +// queryWithJoin.list(); +// +// list = queryWithJoin.list(); + assertEquals( 2,list.size() ); + + s.clear(); + + list = s.getNamedQuery( "organizationautodetect" ).list(); +// queryWithJoin = s.getNamedQuery("organizationautodetect"); +// queryWithJoin.list(); +// +// list = queryWithJoin.list(); + assertEquals( 2,list.size() ); + + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + s.delete(emp2); + + s.delete(jboss); + s.delete(gavin); + s.delete(ifa); + t.commit(); + s.close(); + + } + + + } Index: OracleSQLTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/OracleSQLTest.java,v retrieving revision 1.9 retrieving revision 1.9.2.1 diff -u -d -r1.9 -r1.9.2.1 --- OracleSQLTest.java 10 Jan 2006 23:04:27 -0000 1.9 +++ OracleSQLTest.java 9 Feb 2006 17:30:48 -0000 1.9.2.1 @@ -4,8 +4,8 @@ import junit.framework.Test; import junit.framework.TestSuite; -import org.hibernate.dialect.Oracle9Dialect; import org.hibernate.dialect.Dialect; +import org.hibernate.dialect.Oracle9Dialect; /** * @author Gavin King Index: General.hbm.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/General.hbm.xml,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -d -r1.1 -r1.1.2.1 --- General.hbm.xml 10 Jan 2006 23:04:27 -0000 1.1 +++ General.hbm.xml 9 Feb 2006 17:30:48 -0000 1.1.2.1 @@ -12,10 +12,139 @@ --> <hibernate-mapping package="org.hibernate.test.sql" default-access="field"> + <class name="Organization"> <id name="id" unsaved-value="0" column="orgid"> <generator class="increment"/> </id> <property name="name" not-null="true"/> - </class> + <set lazy="true" name="employments" + inverse="true"> + <key column="employer"/> <!-- only needed for DDL generation --> + <one-to-many class="Employment"/> + </set> + </class> + + <class name="Person"> + <id name="id" unsaved-value="0" column="perid"> + <generator class="increment"/> + </id> + <property name="name" not-null="true"/> + </class> + + <class name="Employment"> + <id name="employmentId" unsaved-value="0" column="empid"> + <generator class="increment"/> + </id> + <many-to-one name="employee" not-null="true" update="false"/> + <many-to-one name="employer" not-null="true" update="false"/> + <property name="startDate" not-null="false"/> + <property name="endDate" insert="false"/> + <property name="regionCode" update="false"/> + <property name="salary" type="org.hibernate.test.sql.MonetaryAmountUserType"> + <column name="VALUE" sql-type="float"/> + <column name="CURRENCY"/> + </property> + </class> + + <resultset name="org-emp-regionCode"> + <return-scalar column="regionCode" type="string"/> + <return alias="org" class="Organization"/> + <return-join alias="emp" property="org.employments"/> + </resultset> + + <resultset name="org-emp-person"> + <return alias="org" class="Organization"/> + <return-join alias="emp" property="org.employments"/> + <return-join alias="pers" property="emp.employee"/> + </resultset> + + + <resultset name="org-description"> + <return alias="org" class="Organization"/> + <return-join alias="emp" property="org.employments"/> + </resultset> + + <sql-query name="orgNamesOnly"> + <return-scalar column="NAME" type="string"/> + SELECT org.NAME FROM ORGANIZATION org + </sql-query> + + <sql-query name="orgNamesAndOrgs"> + <return-scalar column="thename" type="string"/> + <return alias="org" class="Organization"/> + SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} + FROM ORGANIZATION org + ORDER BY thename + </sql-query> + + <sql-query name="orgsAndOrgNames"> + <return alias="org" class="Organization"/> + <return-scalar column="thename" type="string"/> + SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} + FROM ORGANIZATION org + ORDER BY thename + </sql-query> + + <sql-query name="orgIdsAndOrgNames"> + <return-scalar column="orgid" type="long"/> + <return-scalar column="thename" type="string"/> + SELECT NAME AS thename, ORGID AS orgid + FROM ORGANIZATION + ORDER BY thename + </sql-query> + + <sql-query name="AllEmploymentAsMapped"> + <return class="Employment"/> + SELECT * FROM EMPLOYMENT + </sql-query> + + <sql-query name="EmploymentAndPerson"> + <return class="Employment"/> + <return class="Person"/> + SELECT * FROM Employment, Person + </sql-query> + + <sql-query name="organizationEmploymentsExplicitAliases"> + <load-collection alias="empcol" role="Organization.employments"/> + SELECT empcol.employer as {empcol.key}, empcol.empid as {empcol.element}, {empcol.element.*} + FROM EMPLOYMENT empcol + WHERE EMPLOYER = :id + ORDER BY STARTDATE ASC, EMPLOYEE ASC + </sql-query> + + <sql-query name="organizationreturnproperty"> + <return alias="org" class="Organization"> + <return-property name="id" column="orgid"/> + <return-property name="name" column="name"/> + </return> + <return-join alias="emp" property="org.employments"> + <return-property name="key" column="employer"/> + <return-property name="element" column="empid"/> + <return-property name="element.employee" column="EMPLOYEE"/> + <return-property name="element.employer" column="EMPLOYER"/> + <return-property name="element.startDate" column="XSTARTDATE"/> + <return-property name="element.endDate" column="ENDDATE"/> + <return-property name="element.regionCode" column="REGIONCODE"/> + <return-property name="element.employmentId" column="EMPID"/> + <return-property name="element.salary"> + <return-column name="VALUE"/> + <return-column name="CURRENCY"/> + </return-property> + </return-join> + SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as xstartDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY + FROM ORGANIZATION org + LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER + </sql-query> + + + <sql-query name="organizationautodetect" resultset-ref="org-description"> + <!-- equal to "organizationpropertyreturn" but since no {} nor return-property are used hibernate will fallback to use the columns directly from the mapping --> + <return alias="org" class="Organization"/> + <return-join alias="emp" property="org.employments"/> + SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as startDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY + FROM ORGANIZATION org + LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER + </sql-query> + </hibernate-mapping> \ No newline at end of file Index: HandSQLTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/HandSQLTest.java,v retrieving revision 1.1 retrieving revision 1.1.2.1 diff -u -d -r1.1 -r1.1.2.1 --- HandSQLTest.java 10 Jan 2006 23:04:27 -0000 1.1 +++ HandSQLTest.java 9 Feb 2006 17:30:48 -0000 1.1.2.1 @@ -27,41 +27,6 @@ return null; } - protected String getOrgEmpRegionSQL() { - return "select {org.*}, {emp.*}, emp.REGIONCODE " + - "from ORGANIZATION org " + - " left outer join EMPLOYMENT emp on org.ORGID = emp.EMPLOYER"; - } - - protected String getOrgEmpPersonSQL() { - return "select {org.*}, {emp.*}, {pers.*} " + - "from ORGANIZATION org " + - " join EMPLOYMENT emp on org.ORGID = emp.EMPLOYER " + - " join PERSON pers on pers.PERID = emp.EMPLOYEE "; - } - - protected String getEmploymentSQL() { - return "SELECT * FROM EMPLOYMENT"; - } - - protected String getOrganizationJoinEmploymentSQL() { - return "SELECT org.orgid as {org.id}, " + - " org.name as {org.name}, " + - " {emp.*} " + - "FROM ORGANIZATION org " + - " LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER"; - } - - protected String getOrganizationFetchJoinEmploymentSQL() { - return "SELECT org.orgid as {org.id}, " + - " org.name as {org.name}, " + - " emp.employer as {emp.key}, " + - " emp.empid as {emp.element}, " + - " {emp.element.*} " + - "FROM ORGANIZATION org " + - " LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER"; - } - public void testHandSQL() { Session s = openSession(); Transaction t = s.beginTransaction(); @@ -124,153 +89,6 @@ s.close(); } - public void testSQLQueryInterface() { - Session s = openSession(); - Transaction t = s.beginTransaction(); - Organization ifa = new Organization("IFA"); - Organization jboss = new Organization("JBoss"); - Person gavin = new Person("Gavin"); - Employment emp = new Employment(gavin, jboss, "AU"); - - s.persist(ifa); - s.persist(jboss); - s.persist(gavin); - s.persist(emp); - - List l = s.createSQLQuery( getOrgEmpRegionSQL() ) - .addEntity("org", Organization.class) - .addJoin("emp", "org.employments") - .addScalar("regionCode", Hibernate.STRING) - .list(); -// List l = s.createSQLQuery("select {org.*}, {emp.*}, emp.regionCode from organization org left outer join employment emp on org.orgid = emp.employer") -// .addEntity("org", Organization.class) -// .addJoin("emp", "org.employments") -// .addScalar("regionCode", Hibernate.STRING) -// .list(); - assertEquals( l.size(), 2 ); - - l = s.createSQLQuery( getOrgEmpPersonSQL() ) - .addEntity("org", Organization.class) - .addJoin("emp", "org.employments") - .addJoin("pers", "emp.employee") - .list(); -// l = s.createSQLQuery("select {org.*}, {emp.*}, {pers.*} from organization org join employment emp on org.orgid = emp.employer join person pers on pers.perid = emp.employee") -// .addEntity("org", Organization.class) -// .addJoin("emp", "org.employments") -// .addJoin("pers", "emp.employee") -// .list(); - assertEquals( l.size(), 1 ); - - s.delete(emp); - s.delete(gavin); - s.delete(ifa); - s.delete(jboss); - - t.commit(); - s.close(); - } - - public void testResultSetMappingDefinition() { - Session s = openSession(); - Transaction t = s.beginTransaction(); - Organization ifa = new Organization("IFA"); - Organization jboss = new Organization("JBoss"); - Person gavin = new Person("Gavin"); - Employment emp = new Employment(gavin, jboss, "AU"); - - s.persist(ifa); - s.persist(jboss); - s.persist(gavin); - s.persist(emp); - - List l = s.createSQLQuery( getOrgEmpRegionSQL() ) - .setResultSetMapping( "org-emp-regionCode" ) - .list(); -// List l = s.createSQLQuery("select {org.*}, {emp.*}, emp.regionCode from organization org left outer join employment emp on org.orgid = emp.employer") -// .setResultSetMapping( "org-emp-regionCode") -// .list(); - assertEquals( l.size(), 2 ); - - l = s.createSQLQuery( getOrgEmpPersonSQL() ) - .setResultSetMapping( "org-emp-person" ) - .list(); -// l = s.createSQLQuery("select {org.*}, {emp.*}, {pers.*} from organization org join employment emp on org.orgid = emp.employer join person pers on pers.perid = emp.employee") -// .setResultSetMapping( "org-emp-person" ) -// .list(); - assertEquals( l.size(), 1 ); - - s.delete(emp); - s.delete(gavin); - s.delete(ifa); - s.delete(jboss); - - t.commit(); - s.close(); - } - - public void testScalarValues() throws Exception { - Session s = openSession(); - Transaction t = s.beginTransaction(); - - Organization ifa = new Organization( "IFA" ); - Organization jboss = new Organization( "JBoss" ); - - Serializable idIfa = s.save( ifa ); - Serializable idJBoss = s.save( jboss ); - - s.flush(); - - List result = s.getNamedQuery( "orgNamesOnly" ).list(); - assertTrue( result.contains( "IFA" ) ); - assertTrue( result.contains( "JBOSS" ) ); - - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - - Iterator iter = s.getNamedQuery( "orgNamesAndOrgs" ).list().iterator(); - Object[] o = ( Object[] ) iter.next(); - assertEquals( o[0], "IFA" ); - assertEquals( ( ( Organization ) o[1] ).getName(), "IFA" ); - o = ( Object[] ) iter.next(); - assertEquals( o[0], "JBOSS" ); - assertEquals( ( ( Organization ) o[1] ).getName(), "JBOSS" ); - - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - - iter = s.getNamedQuery( "orgsAndOrgNames" ).list().iterator(); - o = ( Object[] ) iter.next(); - assertEquals( o[0], "IFA" ); - assertEquals( ( ( Organization ) o[1] ).getName(), "IFA" ); - o = ( Object[] ) iter.next(); - assertEquals( o[0], "JBOSS" ); - assertEquals( ( ( Organization ) o[1] ).getName(), "JBOSS" ); - - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - - iter = s.getNamedQuery( "orgIdsAndOrgNames" ).list().iterator(); - o = ( Object[] ) iter.next(); - assertEquals( o[1], "IFA" ); - assertEquals( o[0], idIfa ); - o = ( Object[] ) iter.next(); - assertEquals( o[1], "JBOSS" ); - assertEquals( o[0], idJBoss ); - - s.delete( ifa ); - s.delete( jboss ); - t.commit(); - s.close(); - } public void testScalarStoredProcedure() throws HibernateException, SQLException { Session s = openSession(); @@ -329,155 +147,5 @@ s.close(); } - public void testMappedAliasStrategy() { - Session s = openSession(); - Transaction t = s.beginTransaction(); - Organization ifa = new Organization("IFA"); - Organization jboss = new Organization("JBoss"); - Person gavin = new Person("Gavin"); - Employment emp = new Employment(gavin, jboss, "AU"); - Serializable orgId = s.save(jboss); - Serializable orgId2 = s.save(ifa); - s.save(gavin); - s.save(emp); - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - Query namedQuery = s.getNamedQuery("AllEmploymentAsMapped"); - List list = namedQuery.list(); - assertEquals(1,list.size()); - Employment emp2 = (Employment) list.get(0); - assertEquals(emp2.getEmploymentId(), emp.getEmploymentId() ); - assertEquals(emp2.getStartDate().getDate(), emp.getStartDate().getDate() ); - assertEquals(emp2.getEndDate(), emp.getEndDate() ); - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - namedQuery = s.getNamedQuery("EmploymentAndPerson"); - list = namedQuery.list(); - assertEquals(1,list.size() ); - Object[] objs = (Object[]) list.get(0); - assertEquals(2, objs.length); - emp2 = (Employment) objs[0]; - gavin = (Person) objs[1]; - s.delete(emp2); - s.delete(jboss); - s.delete(gavin); - s.delete(ifa); - t.commit(); - s.close(); - } - - public void testAutoDetectAliasing() { - Session s = openSession(); - Transaction t = s.beginTransaction(); - Organization ifa = new Organization("IFA"); - Organization jboss = new Organization("JBoss"); - Person gavin = new Person("Gavin"); - Employment emp = new Employment(gavin, jboss, "AU"); - Serializable orgId = s.save(jboss); - Serializable orgId2 = s.save(ifa); - s.save(gavin); - s.save(emp); - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - List list = s.createSQLQuery( getEmploymentSQL() ) - .addEntity( Employment.class.getName() ) - .list(); -// Query namedQuery = s.createSQLQuery("SELECT * FROM EMPLOYMENT").addEntity( Employment.class.getName() ); -// List list = namedQuery.list(); - assertEquals( 1,list.size() ); - - Employment emp2 = (Employment) list.get(0); - assertEquals(emp2.getEmploymentId(), emp.getEmploymentId() ); - assertEquals(emp2.getStartDate().getDate(), emp.getStartDate().getDate() ); - assertEquals(emp2.getEndDate(), emp.getEndDate() ); - - s.clear(); - - Query queryWithCollection = s.getNamedQuery("organizationEmploymentsExplicitAliases"); - queryWithCollection.setLong("id", jboss.getId() ); - list = queryWithCollection.list(); - assertEquals(list.size(),1); - - s.clear(); - - list = s.createSQLQuery( getOrganizationJoinEmploymentSQL() ) - .addEntity( "org", Organization.class ) - .addJoin( "emp", "org.employments" ) - .list(); -// Query queryWithJoin = s.createSQLQuery( -// "SELECT org.orgid as {org.id}, org.name as {org.name}, {emp.*} FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER ") -// .addEntity("org", Organization.class).addJoin("emp", "org.employments"); -// -// queryWithJoin.list(); -// list = queryWithJoin.list(); - assertEquals( 2,list.size() ); - - s.clear(); - - list = s.createSQLQuery( getOrganizationFetchJoinEmploymentSQL() ) - .addEntity( "org", Organization.class ) - .addJoin( "emp", "org.employments" ) - .list(); -// queryWithJoin = s.createSQLQuery( -// "SELECT org.orgid as {org.id}, org.name as {org.name}, emp.employer as {emp.key}, emp.empid as {emp.element}, {emp.element.*} FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER ") -// .addEntity("org", Organization.class).addJoin("emp", "org.employments"); -// -// list = queryWithJoin.list(); -// assertEquals( 2,list.size() ); -// -// s.clear(); -// -// queryWithJoin = s.createSQLQuery( -// "SELECT org.orgid as {org.id}, org.name as {org.name}, emp.employer as {emp.key}, emp.empid as {emp.element}, {emp.element.*} FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER ") -// .addEntity("org", Organization.class).addJoin("emp", "org.employments"); -// -// list = queryWithJoin.list(); - assertEquals( 2,list.size() ); - - s.clear(); - - // TODO : why twice? - s.getNamedQuery( "organizationreturnproperty" ).list(); - list = s.getNamedQuery( "organizationreturnproperty" ).list(); -// queryWithJoin = s.getNamedQuery("organizationreturnproperty"); -// queryWithJoin.list(); -// -// list = queryWithJoin.list(); - assertEquals( 2,list.size() ); - - s.clear(); - - // TODO : why twice? - s.getNamedQuery( "organizationautodetect" ).list(); - list = s.getNamedQuery( "organizationautodetect" ).list(); -// queryWithJoin = s.getNamedQuery("organizationautodetect"); -// queryWithJoin.list(); -// -// list = queryWithJoin.list(); - assertEquals( 2,list.size() ); - - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - s.delete(emp2); - - s.delete(jboss); - s.delete(gavin); - s.delete(ifa); - t.commit(); - s.close(); - - } } Index: OracleEmployment.hbm.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/OracleEmployment.hbm.xml,v retrieving revision 1.18 retrieving revision 1.18.2.1 diff -u -d -r1.18 -r1.18.2.1 --- OracleEmployment.hbm.xml 10 Jan 2006 23:04:27 -0000 1.18 +++ OracleEmployment.hbm.xml 9 Feb 2006 17:30:48 -0000 1.18.2.1 @@ -11,7 +11,6 @@ This version is for Oracle --> - <hibernate-mapping package="org.hibernate.test.sql" default-access="field"> @@ -21,7 +20,7 @@ <generator class="increment"/> </id> <property name="name" not-null="true"/> - <set lazy="true" name="employments" + <set name="employments" inverse="true" order-by="DUMMY"> <key column="employer"/> <!-- only needed for DDL generation --> @@ -29,7 +28,7 @@ <loader query-ref="organizationEmployments"/> </set> <!-- query-list name="currentEmployments" - query-ref="organizationCurrentEmployments"/--> + query-ref="organizationCurrentEmployments"--> <loader query-ref="organization"/> <sql-insert>INSERT INTO ORGANIZATION (NAME, ORGID) VALUES ( UPPER(?), ? )</sql-insert> <sql-update>UPDATE ORGANIZATION SET NAME=UPPER(?) WHERE ORGID=?</sql-update> @@ -82,57 +81,21 @@ <return-join alias="pers" property="emp.employee"/> </resultset> - <resultset name="org-description"> - <return alias="org" class="Organization"/> - <return-join alias="emp" property="org.employments"/> - </resultset> - <sql-query name="person"> <return alias="p" class="Person" lock-mode="upgrade"/> SELECT NAME AS {p.name}, PERID AS {p.id} FROM PERSON WHERE PERID=? /*FOR UPDATE*/ </sql-query> - <sql-query name="organization" resultset-ref="org-description"> - <!-- return alias="org" class="Organization"/> - <return-join alias="emp" property="org.employments"/ --> + <sql-query name="organization"> + <return alias="org" class="Organization"/> + <return-join alias="emp" property="org.employments"/> SELECT {org.*}, {emp.*} FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER WHERE org.ORGID=? </sql-query> - <sql-query name="organizationreturnproperty"> - <return alias="org" class="Organization"> - <return-property name="id" column="orgid"/> - <return-property name="name" column="name"/> - </return> - <return-join alias="emp" property="org.employments"> - <return-property name="key" column="employer"/> - <return-property name="element" column="empid"/> - <return-property name="element.employee" column="EMPLOYEE"/> - <return-property name="element.employer" column="EMPLOYER"/> - <return-property name="element.startDate" column="XSTARTDATE"/> - <return-property name="element.endDate" column="ENDDATE"/> - <return-property name="element.regionCode" column="REGIONCODE"/> - <return-property name="element.employmentId" column="EMPID"/> - <return-property name="element.salary"> - <return-column name="VALUE"/> - <return-column name="CURRENCY"/> - </return-property> - </return-join> - SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as xstartDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY - FROM ORGANIZATION org - LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER - </sql-query> - <sql-query name="organizationautodetect"> - <!-- equal to "organizationpropertyreturn" but since no {} nor return-property are used hibernate will fallback to use the columns directly from the mapping --> - <return alias="org" class="Organization"/> - <return-join alias="emp" property="org.employments"/> - SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as startDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY - FROM ORGANIZATION org - LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER - </sql-query> <!--sql-query name="organization"> <return alias="org" class="Organization"/> @@ -147,34 +110,9 @@ INNER JOIN EMPLOYMENT e ON e.EMPLOYER = org.ORGID </sql-query> - <sql-query name="orgNamesOnly"> - <return-scalar column="NAME" type="string"/> - SELECT org.NAME FROM ORGANIZATION org - </sql-query> - <sql-query name="orgNamesAndOrgs"> - <return-scalar column="thename" type="string"/> - <return alias="org" class="Organization"/> - SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} - FROM ORGANIZATION org - ORDER BY thename - </sql-query> - <sql-query name="orgsAndOrgNames"> - <return alias="org" class="Organization"/> - <return-scalar column="thename" type="string"/> - SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} - FROM ORGANIZATION org - ORDER BY thename - </sql-query> - <sql-query name="orgIdsAndOrgNames"> - <return-scalar column="orgid" type="long"/> - <return-scalar column="thename" type="string"/> - SELECT NAME AS thename, ORGID AS orgid - FROM ORGANIZATION - ORDER BY thename - </sql-query> <sql-query name="employment"> <return alias="emp" class="Employment"/> @@ -185,17 +123,7 @@ WHERE EMPID = ? </sql-query> - <sql-query name="AllEmploymentAsMapped"> - <return class="Employment"/> - SELECT * FROM EMPLOYMENT - </sql-query> - <sql-query name="EmploymentAndPerson"> - <return class="Employment"/> - <return class="Person"/> - SELECT * FROM Employment, Person - </sql-query> - <sql-query name="organizationEmployments"> <load-collection alias="empcol" role="Organization.employments"/> SELECT {empcol.*} @@ -204,13 +132,6 @@ ORDER BY STARTDATE ASC, EMPLOYEE ASC </sql-query> - <sql-query name="organizationEmploymentsExplicitAliases"> - <load-collection alias="empcol" role="Organization.employments"/> - SELECT empcol.employer as {empcol.key}, empcol.empid as {empcol.element}, {empcol.element.*} - FROM EMPLOYMENT empcol - WHERE EMPLOYER = :id - ORDER BY STARTDATE ASC, EMPLOYEE ASC - </sql-query> <sql-query name="organizationCurrentEmployments"> @@ -233,6 +154,11 @@ ORDER BY STARTDATE ASC </sql-query> + <sql-query name="simpleScalar" callable="true"> + <return-scalar column="name" type="string"/> + <return-scalar column="value" type="long"/> + { ? = call simpleScalar(:number) } + </sql-query> <sql-query name="paramhandling" callable="true"> <return-scalar column="value" type="long" /> <return-scalar column="value2" type="long" /> @@ -261,11 +187,6 @@ { ? = call allEmployments() } </sql-query> - <sql-query name="simpleScalar" callable="true"> - <return-scalar column="name" type="string"/> - <return-scalar column="value" type="long"/> - { ? = call simpleScalar(:number) } - </sql-query> <database-object> <create> Index: MSSQLEmployment.hbm.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/MSSQLEmployment.hbm.xml,v retrieving revision 1.4 retrieving revision 1.4.2.1 diff -u -d -r1.4 -r1.4.2.1 --- MSSQLEmployment.hbm.xml 10 Jan 2006 23:04:27 -0000 1.4 +++ MSSQLEmployment.hbm.xml 9 Feb 2006 17:30:48 -0000 1.4.2.1 @@ -10,7 +10,6 @@ This version is for Sybase/mssql --> - <hibernate-mapping package="org.hibernate.test.sql" default-access="field"> @@ -95,38 +94,6 @@ WHERE org.ORGID=? </sql-query> - <sql-query name="organizationreturnproperty"> - <return alias="org" class="Organization"> - <return-property name="id" column="orgid"/> - <return-property name="name" column="name"/> - </return> - <return-join alias="emp" property="org.employments"> - <return-property name="key" column="employer"/> - <return-property name="element" column="empid"/> - <return-property name="element.employee" column="EMPLOYEE"/> - <return-property name="element.employer" column="EMPLOYER"/> - <return-property name="element.startDate" column="XSTARTDATE"/> - <return-property name="element.endDate" column="ENDDATE"/> - <return-property name="element.regionCode" column="REGIONCODE"/> - <return-property name="element.employmentId" column="EMPID"/> - <return-property name="element.salary"> - <return-column name="VALUE"/> - <return-column name="CURRENCY"/> - </return-property> - </return-join> - SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as xstartDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY - FROM ORGANIZATION org - LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER - </sql-query> - - <sql-query name="organizationautodetect"> - <!-- equal to "organizationpropertyreturn" but since no {} nor return-property are used hibernate will fallback to use the columns directly from the mapping --> - <return alias="org" class="Organization"/> - <return-join alias="emp" property="org.employments"/> - SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as startDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY - FROM ORGANIZATION org - LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER - </sql-query> <!--sql-query name="organization"> <return alias="org" class="Organization"/> @@ -141,34 +108,9 @@ INNER JOIN EMPLOYMENT e ON e.EMPLOYER = org.ORGID </sql-query> - <sql-query name="orgNamesOnly"> - <return-scalar column="NAME"/> - SELECT org.NAME FROM ORGANIZATION org - </sql-query> - <sql-query name="orgNamesAndOrgs"> - <return-scalar column="thename" type="string"/> - <return alias="org" class="Organization"/> - SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} - FROM ORGANIZATION org - ORDER BY thename - </sql-query> - <sql-query name="orgsAndOrgNames"> - <return alias="org" class="Organization"/> - <return-scalar column="thename" type="string"/> - SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} - FROM ORGANIZATION org - ORDER BY thename - </sql-query> - <sql-query name="orgIdsAndOrgNames"> - <return-scalar column="orgid" type="long"/> - <return-scalar column="thename" type="string"/> - SELECT NAME AS thename, ORGID AS orgid - FROM ORGANIZATION - ORDER BY thename - </sql-query> <sql-query name="employment"> <return alias="emp" class="Employment"/> @@ -179,17 +121,6 @@ WHERE EMPID = ? </sql-query> - <sql-query name="AllEmploymentAsMapped"> - <return class="Employment"/> - SELECT * FROM EMPLOYMENT - </sql-query> - - <sql-query name="EmploymentAndPerson"> - <return class="Employment"/> - <return class="Person"/> - SELECT * FROM Employment, Person - </sql-query> - <sql-query name="organizationEmployments"> <load-collection alias="empcol" role="Organization.employments"/> SELECT {empcol.*} @@ -198,13 +129,6 @@ ORDER BY STARTDATE ASC, EMPLOYEE ASC </sql-query> - <sql-query name="organizationEmploymentsExplicitAliases"> - <load-collection alias="empcol" role="Organization.employments"/> - SELECT empcol.employer as {empcol.key}, empcol.empid as {empcol.element}, {empcol.element.*} - FROM EMPLOYMENT empcol - WHERE EMPLOYER = :id - ORDER BY STARTDATE ASC, EMPLOYEE ASC - </sql-query> <sql-query name="organizationCurrentEmployments"> <return alias="emp" class="Employment"> Index: MySQLEmployment.hbm.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/MySQLEmployment.hbm.xml,v retrieving revision 1.3 retrieving revision 1.3.2.1 diff -u -d -r1.3 -r1.3.2.1 --- MySQLEmployment.hbm.xml 18 Jan 2006 06:25:56 -0000 1.3 +++ MySQLEmployment.hbm.xml 9 Feb 2006 17:30:48 -0000 1.3.2.1 @@ -95,38 +95,7 @@ WHERE org.ORGID=? </sql-query> - <sql-query name="organizationreturnproperty"> - <return alias="org" class="Organization"> - <return-property name="id" column="orgid"/> - <return-property name="name" column="name"/> - </return> - <return-join alias="emp" property="org.employments"> - <return-property name="key" column="employer"/> - <return-property name="element" column="empid"/> - <return-property name="element.employee" column="EMPLOYEE"/> - <return-property name="element.employer" column="EMPLOYER"/> - <return-property name="element.startDate" column="STARTDATE"/> - <return-property name="element.endDate" column="ENDDATE"/> - <return-property name="element.regionCode" column="REGIONCODE"/> - <return-property name="element.employmentId" column="EMPID"/> - <return-property name="element.salary"> - <return-column name="VALUE"/> - <return-column name="CURRENCY"/> - </return-property> - </return-join> - SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as startDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY - FROM ORGANIZATION org - LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER - </sql-query> - <sql-query name="organizationautodetect"> - <!-- equal to "organizationpropertyreturn" but since no {} nor return-property are used hibernate will fallback to use the columns directly from the mapping --> - <return alias="org" class="Organization"/> - <return-join alias="emp" property="org.employments"/> - SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as startDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY - FROM ORGANIZATION org - LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER - </sql-query> <!--sql-query name="organization"> <return alias="org" class="Organization"/> @@ -141,35 +110,6 @@ INNER JOIN EMPLOYMENT e ON e.EMPLOYER = org.ORGID </sql-query> - <sql-query name="orgNamesOnly"> - <return-scalar column="NAME" type="string"/> - SELECT org.NAME FROM ORGANIZATION org - </sql-query> - - <sql-query name="orgNamesAndOrgs"> - <return-scalar column="thename" type="string"/> - <return alias="org" class="Organization"/> - SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} - FROM ORGANIZATION org - ORDER BY thename - </sql-query> - - <sql-query name="orgsAndOrgNames"> - <return alias="org" class="Organization"/> - <return-scalar column="thename" type="string"/> - SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} - FROM ORGANIZATION org - ORDER BY thename - </sql-query> - - <sql-query name="orgIdsAndOrgNames"> - <return-scalar column="orgid" type="long"/> - <return-scalar column="thename" type="string"/> - SELECT NAME AS thename, ORGID AS orgid - FROM ORGANIZATION - ORDER BY thename - </sql-query> - <sql-query name="employment"> <return alias="emp" class="Employment"/> SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer}, @@ -179,16 +119,6 @@ WHERE EMPID = ? </sql-query> - <sql-query name="AllEmploymentAsMapped"> - <return class="Employment"/> - SELECT * FROM EMPLOYMENT - </sql-query> - - <sql-query name="EmploymentAndPerson"> - <return class="Employment"/> - <return class="Person"/> - SELECT * FROM Employment, Person - </sql-query> <sql-query name="organizationEmployments"> <load-collection alias="empcol" role="Organization.employments"/> @@ -198,13 +128,6 @@ ORDER BY STARTDATE ASC, EMPLOYEE ASC </sql-query> - <sql-query name="organizationEmploymentsExplicitAliases"> - <load-collection alias="empcol" role="Organization.employments"/> - SELECT empcol.employer as {empcol.key}, empcol.empid as {empcol.element}, {empcol.element.*} - FROM EMPLOYMENT empcol - WHERE EMPLOYER = :id - ORDER BY STARTDATE ASC, EMPLOYEE ASC - </sql-query> <sql-query name="organizationCurrentEmployments"> <return alias="emp" class="Employment"> @@ -227,8 +150,8 @@ </sql-query> <sql-query name="simpleScalar" callable="true"> - <return-scalar column="name" type="string"/> - <return-scalar column="value" type="long"/> + <return-scalar column="name" type="string"/> + <return-scalar column="value" type="long"/> { call simpleScalar(:number) } </sql-query> |
From: <max...@us...> - 2006-02-09 17:26:58
|
Update of /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv11564/test/org/hibernate/test/sql Modified Files: MSSQLTest.java GeneralTest.java HandSQLTest.java OracleSQLTest.java MSSQLEmployment.hbm.xml OracleEmployment.hbm.xml MySQLEmployment.hbm.xml General.hbm.xml Log Message: cleaned up hand sql tests so the general and portable code is run on all databases and only the truly db specific test cases are limited to specific dbs (such as stored procedures and custom sql) Index: MSSQLTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/MSSQLTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- MSSQLTest.java 10 Jan 2006 23:04:27 -0000 1.9 +++ MSSQLTest.java 9 Feb 2006 17:26:47 -0000 1.10 @@ -1,26 +1,11 @@ //$Id$ package org.hibernate.test.sql; -import java.io.Serializable; -import java.sql.SQLException; -import java.util.Date; -import java.util.Iterator; -import java.util.List; - import junit.framework.Test; import junit.framework.TestSuite; -import org.hibernate.Hibernate; -import org.hibernate.HibernateException; -import org.hibernate.LockMode; -import org.hibernate.Query; -import org.hibernate.Session; -import org.hibernate.Transaction; -import org.hibernate.dialect.DB2Dialect; -import org.hibernate.dialect.MySQLDialect; -import org.hibernate.dialect.SybaseDialect; import org.hibernate.dialect.Dialect; -import org.hibernate.test.TestCase; +import org.hibernate.dialect.SybaseDialect; /** * @author Gavin King @@ -42,6 +27,5 @@ public boolean appliesTo(Dialect dialect) { return ( dialect instanceof SybaseDialect ); } - } Index: GeneralTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/GeneralTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- GeneralTest.java 10 Jan 2006 23:04:27 -0000 1.1 +++ GeneralTest.java 9 Feb 2006 17:26:48 -0000 1.2 @@ -1,8 +1,15 @@ package org.hibernate.test.sql; +import java.io.Serializable; +import java.util.Iterator; +import java.util.List; + import org.hibernate.test.TestCase; +import org.hibernate.Hibernate; +import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.HibernateException; +import org.hibernate.Transaction; /** * @author Steve Ebersole @@ -15,6 +22,42 @@ super( x ); } + protected String getOrganizationFetchJoinEmploymentSQL() { + return "SELECT org.orgid as {org.id}, " + + " org.name as {org.name}, " + + " emp.employer as {emp.key}, " + + " emp.empid as {emp.element}, " + + " {emp.element.*} " + + "FROM ORGANIZATION org " + + " LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER"; + } + + protected String getOrganizationJoinEmploymentSQL() { + return "SELECT org.orgid as {org.id}, " + + " org.name as {org.name}, " + + " {emp.*} " + + "FROM ORGANIZATION org " + + " LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER"; + } + + protected String getEmploymentSQL() { + return "SELECT * FROM EMPLOYMENT"; + } + + protected String getOrgEmpRegionSQL() { + return "select {org.*}, {emp.*}, emp.REGIONCODE " + + "from ORGANIZATION org " + + " left outer join EMPLOYMENT emp on org.ORGID = emp.EMPLOYER"; + } + + protected String getOrgEmpPersonSQL() { + return "select {org.*}, {emp.*}, {pers.*} " + + "from ORGANIZATION org " + + " join EMPLOYMENT emp on org.ORGID = emp.EMPLOYER " + + " join PERSON pers on pers.PERID = emp.EMPLOYEE "; + } + + protected String[] getMappings() { return new String[] { "sql/General.hbm.xml" }; } @@ -38,4 +81,304 @@ s.close(); } } + + public void testSQLQueryInterface() { + Session s = openSession(); + Transaction t = s.beginTransaction(); + Organization ifa = new Organization("IFA"); + Organization jboss = new Organization("JBoss"); + Person gavin = new Person("Gavin"); + Employment emp = new Employment(gavin, jboss, "AU"); + + s.persist(ifa); + s.persist(jboss); + s.persist(gavin); + s.persist(emp); + + List l = s.createSQLQuery( getOrgEmpRegionSQL() ) + .addEntity("org", Organization.class) + .addJoin("emp", "org.employments") + .addScalar("regionCode", Hibernate.STRING) + .list(); +// List l = s.createSQLQuery("select {org.*}, {emp.*}, emp.regionCode from organization org left outer join employment emp on org.orgid = emp.employer") +// .addEntity("org", Organization.class) +// .addJoin("emp", "org.employments") +// .addScalar("regionCode", Hibernate.STRING) +// .list(); + assertEquals( l.size(), 2 ); + + l = s.createSQLQuery( getOrgEmpPersonSQL() ) + .addEntity("org", Organization.class) + .addJoin("emp", "org.employments") + .addJoin("pers", "emp.employee") + .list(); +// l = s.createSQLQuery("select {org.*}, {emp.*}, {pers.*} from organization org join employment emp on org.orgid = emp.employer join person pers on pers.perid = emp.employee") +// .addEntity("org", Organization.class) +// .addJoin("emp", "org.employments") +// .addJoin("pers", "emp.employee") +// .list(); + assertEquals( l.size(), 1 ); + + s.delete(emp); + s.delete(gavin); + s.delete(ifa); + s.delete(jboss); + + t.commit(); + s.close(); + } + + public void testResultSetMappingDefinition() { + Session s = openSession(); + Transaction t = s.beginTransaction(); + Organization ifa = new Organization("IFA"); + Organization jboss = new Organization("JBoss"); + Person gavin = new Person("Gavin"); + Employment emp = new Employment(gavin, jboss, "AU"); + + s.persist(ifa); + s.persist(jboss); + s.persist(gavin); + s.persist(emp); + + List l = s.createSQLQuery( getOrgEmpRegionSQL() ) + .setResultSetMapping( "org-emp-regionCode" ) + .list(); +// List l = s.createSQLQuery("select {org.*}, {emp.*}, emp.regionCode from organization org left outer join employment emp on org.orgid = emp.employer") +// .setResultSetMapping( "org-emp-regionCode") +// .list(); + assertEquals( l.size(), 2 ); + + l = s.createSQLQuery( getOrgEmpPersonSQL() ) + .setResultSetMapping( "org-emp-person" ) + .list(); +// l = s.createSQLQuery("select {org.*}, {emp.*}, {pers.*} from organization org join employment emp on org.orgid = emp.employer join person pers on pers.perid = emp.employee") +// .setResultSetMapping( "org-emp-person" ) +// .list(); + assertEquals( l.size(), 1 ); + + s.delete(emp); + s.delete(gavin); + s.delete(ifa); + s.delete(jboss); + + t.commit(); + s.close(); + } + + public void testScalarValues() throws Exception { + Session s = openSession(); + Transaction t = s.beginTransaction(); + + Organization ifa = new Organization( "IFA" ); + Organization jboss = new Organization( "JBoss" ); + + Serializable idIfa = s.save( ifa ); + Serializable idJBoss = s.save( jboss ); + + s.flush(); + + List result = s.getNamedQuery( "orgNamesOnly" ).list(); + assertTrue( result.contains( "IFA" ) ); + assertTrue( result.contains( "JBoss" ) ); + + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + + Iterator iter = s.getNamedQuery( "orgNamesAndOrgs" ).list().iterator(); + Object[] o = ( Object[] ) iter.next(); + assertEquals( o[0], "IFA" ); + assertEquals( ( ( Organization ) o[1] ).getName(), "IFA" ); + o = ( Object[] ) iter.next(); + assertEquals( o[0], "JBoss" ); + assertEquals( ( ( Organization ) o[1] ).getName(), "JBoss" ); + + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + + iter = s.getNamedQuery( "orgsAndOrgNames" ).list().iterator(); + o = ( Object[] ) iter.next(); + assertEquals( o[0], "IFA" ); + assertEquals( ( ( Organization ) o[1] ).getName(), "IFA" ); + o = ( Object[] ) iter.next(); + assertEquals( o[0], "JBoss" ); + assertEquals( ( ( Organization ) o[1] ).getName(), "JBoss" ); + + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + + iter = s.getNamedQuery( "orgIdsAndOrgNames" ).list().iterator(); + o = ( Object[] ) iter.next(); + assertEquals( o[1], "IFA" ); + assertEquals( o[0], idIfa ); + o = ( Object[] ) iter.next(); + assertEquals( o[1], "JBoss" ); + assertEquals( o[0], idJBoss ); + + s.delete( ifa ); + s.delete( jboss ); + t.commit(); + s.close(); + } + + public void testMappedAliasStrategy() { + Session s = openSession(); + Transaction t = s.beginTransaction(); + Organization ifa = new Organization("IFA"); + Organization jboss = new Organization("JBoss"); + Person gavin = new Person("Gavin"); + Employment emp = new Employment(gavin, jboss, "AU"); + Serializable orgId = s.save(jboss); + Serializable orgId2 = s.save(ifa); + s.save(gavin); + s.save(emp); + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + Query namedQuery = s.getNamedQuery("AllEmploymentAsMapped"); + List list = namedQuery.list(); + assertEquals(1,list.size()); + Employment emp2 = (Employment) list.get(0); + assertEquals(emp2.getEmploymentId(), emp.getEmploymentId() ); + assertEquals(emp2.getStartDate().getDate(), emp.getStartDate().getDate() ); + assertEquals(emp2.getEndDate(), emp.getEndDate() ); + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + namedQuery = s.getNamedQuery("EmploymentAndPerson"); + list = namedQuery.list(); + assertEquals(1,list.size() ); + Object[] objs = (Object[]) list.get(0); + assertEquals(2, objs.length); + emp2 = (Employment) objs[0]; + gavin = (Person) objs[1]; + s.delete(emp2); + s.delete(jboss); + s.delete(gavin); + s.delete(ifa); + t.commit(); + s.close(); + } + + public void testAutoDetectAliasing() { + Session s = openSession(); + Transaction t = s.beginTransaction(); + Organization ifa = new Organization("IFA"); + Organization jboss = new Organization("JBoss"); + Person gavin = new Person("Gavin"); + Employment emp = new Employment(gavin, jboss, "AU"); + Serializable orgId = s.save(jboss); + Serializable orgId2 = s.save(ifa); + s.save(gavin); + s.save(emp); + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + List list = s.createSQLQuery( getEmploymentSQL() ) + .addEntity( Employment.class.getName() ) + .list(); +// Query namedQuery = s.createSQLQuery("SELECT * FROM EMPLOYMENT").addEntity( Employment.class.getName() ); +// List list = namedQuery.list(); + assertEquals( 1,list.size() ); + + Employment emp2 = (Employment) list.get(0); + assertEquals(emp2.getEmploymentId(), emp.getEmploymentId() ); + assertEquals(emp2.getStartDate().getDate(), emp.getStartDate().getDate() ); + assertEquals(emp2.getEndDate(), emp.getEndDate() ); + + s.clear(); + + Query queryWithCollection = s.getNamedQuery("organizationEmploymentsExplicitAliases"); + queryWithCollection.setLong("id", jboss.getId() ); + list = queryWithCollection.list(); + assertEquals(list.size(),1); + + s.clear(); + + list = s.createSQLQuery( getOrganizationJoinEmploymentSQL() ) + .addEntity( "org", Organization.class ) + .addJoin( "emp", "org.employments" ) + .list(); +// Query queryWithJoin = s.createSQLQuery( +// "SELECT org.orgid as {org.id}, org.name as {org.name}, {emp.*} FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER ") +// .addEntity("org", Organization.class).addJoin("emp", "org.employments"); +// +// queryWithJoin.list(); +// list = queryWithJoin.list(); + assertEquals( 2,list.size() ); + + s.clear(); + + list = s.createSQLQuery( getOrganizationFetchJoinEmploymentSQL() ) + .addEntity( "org", Organization.class ) + .addJoin( "emp", "org.employments" ) + .list(); +// queryWithJoin = s.createSQLQuery( +// "SELECT org.orgid as {org.id}, org.name as {org.name}, emp.employer as {emp.key}, emp.empid as {emp.element}, {emp.element.*} FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER ") +// .addEntity("org", Organization.class).addJoin("emp", "org.employments"); +// +// list = queryWithJoin.list(); +// assertEquals( 2,list.size() ); +// +// s.clear(); +// +// queryWithJoin = s.createSQLQuery( +// "SELECT org.orgid as {org.id}, org.name as {org.name}, emp.employer as {emp.key}, emp.empid as {emp.element}, {emp.element.*} FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER ") +// .addEntity("org", Organization.class).addJoin("emp", "org.employments"); +// +// list = queryWithJoin.list(); + assertEquals( 2,list.size() ); + + s.clear(); + + // TODO : why twice? + s.getNamedQuery( "organizationreturnproperty" ).list(); + list = s.getNamedQuery( "organizationreturnproperty" ).list(); +// queryWithJoin = s.getNamedQuery("organizationreturnproperty"); +// queryWithJoin.list(); +// +// list = queryWithJoin.list(); + assertEquals( 2,list.size() ); + + s.clear(); + + list = s.getNamedQuery( "organizationautodetect" ).list(); +// queryWithJoin = s.getNamedQuery("organizationautodetect"); +// queryWithJoin.list(); +// +// list = queryWithJoin.list(); + assertEquals( 2,list.size() ); + + t.commit(); + s.close(); + + s = openSession(); + t = s.beginTransaction(); + s.delete(emp2); + + s.delete(jboss); + s.delete(gavin); + s.delete(ifa); + t.commit(); + s.close(); + + } + + + } Index: HandSQLTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/HandSQLTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- HandSQLTest.java 10 Jan 2006 23:04:27 -0000 1.1 +++ HandSQLTest.java 9 Feb 2006 17:26:48 -0000 1.2 @@ -27,41 +27,6 @@ return null; } - protected String getOrgEmpRegionSQL() { - return "select {org.*}, {emp.*}, emp.REGIONCODE " + - "from ORGANIZATION org " + - " left outer join EMPLOYMENT emp on org.ORGID = emp.EMPLOYER"; - } - - protected String getOrgEmpPersonSQL() { - return "select {org.*}, {emp.*}, {pers.*} " + - "from ORGANIZATION org " + - " join EMPLOYMENT emp on org.ORGID = emp.EMPLOYER " + - " join PERSON pers on pers.PERID = emp.EMPLOYEE "; - } - - protected String getEmploymentSQL() { - return "SELECT * FROM EMPLOYMENT"; - } - - protected String getOrganizationJoinEmploymentSQL() { - return "SELECT org.orgid as {org.id}, " + - " org.name as {org.name}, " + - " {emp.*} " + - "FROM ORGANIZATION org " + - " LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER"; - } - - protected String getOrganizationFetchJoinEmploymentSQL() { - return "SELECT org.orgid as {org.id}, " + - " org.name as {org.name}, " + - " emp.employer as {emp.key}, " + - " emp.empid as {emp.element}, " + - " {emp.element.*} " + - "FROM ORGANIZATION org " + - " LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER"; - } - public void testHandSQL() { Session s = openSession(); Transaction t = s.beginTransaction(); @@ -124,153 +89,6 @@ s.close(); } - public void testSQLQueryInterface() { - Session s = openSession(); - Transaction t = s.beginTransaction(); - Organization ifa = new Organization("IFA"); - Organization jboss = new Organization("JBoss"); - Person gavin = new Person("Gavin"); - Employment emp = new Employment(gavin, jboss, "AU"); - - s.persist(ifa); - s.persist(jboss); - s.persist(gavin); - s.persist(emp); - - List l = s.createSQLQuery( getOrgEmpRegionSQL() ) - .addEntity("org", Organization.class) - .addJoin("emp", "org.employments") - .addScalar("regionCode", Hibernate.STRING) - .list(); -// List l = s.createSQLQuery("select {org.*}, {emp.*}, emp.regionCode from organization org left outer join employment emp on org.orgid = emp.employer") -// .addEntity("org", Organization.class) -// .addJoin("emp", "org.employments") -// .addScalar("regionCode", Hibernate.STRING) -// .list(); - assertEquals( l.size(), 2 ); - - l = s.createSQLQuery( getOrgEmpPersonSQL() ) - .addEntity("org", Organization.class) - .addJoin("emp", "org.employments") - .addJoin("pers", "emp.employee") - .list(); -// l = s.createSQLQuery("select {org.*}, {emp.*}, {pers.*} from organization org join employment emp on org.orgid = emp.employer join person pers on pers.perid = emp.employee") -// .addEntity("org", Organization.class) -// .addJoin("emp", "org.employments") -// .addJoin("pers", "emp.employee") -// .list(); - assertEquals( l.size(), 1 ); - - s.delete(emp); - s.delete(gavin); - s.delete(ifa); - s.delete(jboss); - - t.commit(); - s.close(); - } - - public void testResultSetMappingDefinition() { - Session s = openSession(); - Transaction t = s.beginTransaction(); - Organization ifa = new Organization("IFA"); - Organization jboss = new Organization("JBoss"); - Person gavin = new Person("Gavin"); - Employment emp = new Employment(gavin, jboss, "AU"); - - s.persist(ifa); - s.persist(jboss); - s.persist(gavin); - s.persist(emp); - - List l = s.createSQLQuery( getOrgEmpRegionSQL() ) - .setResultSetMapping( "org-emp-regionCode" ) - .list(); -// List l = s.createSQLQuery("select {org.*}, {emp.*}, emp.regionCode from organization org left outer join employment emp on org.orgid = emp.employer") -// .setResultSetMapping( "org-emp-regionCode") -// .list(); - assertEquals( l.size(), 2 ); - - l = s.createSQLQuery( getOrgEmpPersonSQL() ) - .setResultSetMapping( "org-emp-person" ) - .list(); -// l = s.createSQLQuery("select {org.*}, {emp.*}, {pers.*} from organization org join employment emp on org.orgid = emp.employer join person pers on pers.perid = emp.employee") -// .setResultSetMapping( "org-emp-person" ) -// .list(); - assertEquals( l.size(), 1 ); - - s.delete(emp); - s.delete(gavin); - s.delete(ifa); - s.delete(jboss); - - t.commit(); - s.close(); - } - - public void testScalarValues() throws Exception { - Session s = openSession(); - Transaction t = s.beginTransaction(); - - Organization ifa = new Organization( "IFA" ); - Organization jboss = new Organization( "JBoss" ); - - Serializable idIfa = s.save( ifa ); - Serializable idJBoss = s.save( jboss ); - - s.flush(); - - List result = s.getNamedQuery( "orgNamesOnly" ).list(); - assertTrue( result.contains( "IFA" ) ); - assertTrue( result.contains( "JBOSS" ) ); - - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - - Iterator iter = s.getNamedQuery( "orgNamesAndOrgs" ).list().iterator(); - Object[] o = ( Object[] ) iter.next(); - assertEquals( o[0], "IFA" ); - assertEquals( ( ( Organization ) o[1] ).getName(), "IFA" ); - o = ( Object[] ) iter.next(); - assertEquals( o[0], "JBOSS" ); - assertEquals( ( ( Organization ) o[1] ).getName(), "JBOSS" ); - - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - - iter = s.getNamedQuery( "orgsAndOrgNames" ).list().iterator(); - o = ( Object[] ) iter.next(); - assertEquals( o[0], "IFA" ); - assertEquals( ( ( Organization ) o[1] ).getName(), "IFA" ); - o = ( Object[] ) iter.next(); - assertEquals( o[0], "JBOSS" ); - assertEquals( ( ( Organization ) o[1] ).getName(), "JBOSS" ); - - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - - iter = s.getNamedQuery( "orgIdsAndOrgNames" ).list().iterator(); - o = ( Object[] ) iter.next(); - assertEquals( o[1], "IFA" ); - assertEquals( o[0], idIfa ); - o = ( Object[] ) iter.next(); - assertEquals( o[1], "JBOSS" ); - assertEquals( o[0], idJBoss ); - - s.delete( ifa ); - s.delete( jboss ); - t.commit(); - s.close(); - } public void testScalarStoredProcedure() throws HibernateException, SQLException { Session s = openSession(); @@ -329,155 +147,5 @@ s.close(); } - public void testMappedAliasStrategy() { - Session s = openSession(); - Transaction t = s.beginTransaction(); - Organization ifa = new Organization("IFA"); - Organization jboss = new Organization("JBoss"); - Person gavin = new Person("Gavin"); - Employment emp = new Employment(gavin, jboss, "AU"); - Serializable orgId = s.save(jboss); - Serializable orgId2 = s.save(ifa); - s.save(gavin); - s.save(emp); - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - Query namedQuery = s.getNamedQuery("AllEmploymentAsMapped"); - List list = namedQuery.list(); - assertEquals(1,list.size()); - Employment emp2 = (Employment) list.get(0); - assertEquals(emp2.getEmploymentId(), emp.getEmploymentId() ); - assertEquals(emp2.getStartDate().getDate(), emp.getStartDate().getDate() ); - assertEquals(emp2.getEndDate(), emp.getEndDate() ); - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - namedQuery = s.getNamedQuery("EmploymentAndPerson"); - list = namedQuery.list(); - assertEquals(1,list.size() ); - Object[] objs = (Object[]) list.get(0); - assertEquals(2, objs.length); - emp2 = (Employment) objs[0]; - gavin = (Person) objs[1]; - s.delete(emp2); - s.delete(jboss); - s.delete(gavin); - s.delete(ifa); - t.commit(); - s.close(); - } - - public void testAutoDetectAliasing() { - Session s = openSession(); - Transaction t = s.beginTransaction(); - Organization ifa = new Organization("IFA"); - Organization jboss = new Organization("JBoss"); - Person gavin = new Person("Gavin"); - Employment emp = new Employment(gavin, jboss, "AU"); - Serializable orgId = s.save(jboss); - Serializable orgId2 = s.save(ifa); - s.save(gavin); - s.save(emp); - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - List list = s.createSQLQuery( getEmploymentSQL() ) - .addEntity( Employment.class.getName() ) - .list(); -// Query namedQuery = s.createSQLQuery("SELECT * FROM EMPLOYMENT").addEntity( Employment.class.getName() ); -// List list = namedQuery.list(); - assertEquals( 1,list.size() ); - - Employment emp2 = (Employment) list.get(0); - assertEquals(emp2.getEmploymentId(), emp.getEmploymentId() ); - assertEquals(emp2.getStartDate().getDate(), emp.getStartDate().getDate() ); - assertEquals(emp2.getEndDate(), emp.getEndDate() ); - - s.clear(); - - Query queryWithCollection = s.getNamedQuery("organizationEmploymentsExplicitAliases"); - queryWithCollection.setLong("id", jboss.getId() ); - list = queryWithCollection.list(); - assertEquals(list.size(),1); - - s.clear(); - - list = s.createSQLQuery( getOrganizationJoinEmploymentSQL() ) - .addEntity( "org", Organization.class ) - .addJoin( "emp", "org.employments" ) - .list(); -// Query queryWithJoin = s.createSQLQuery( -// "SELECT org.orgid as {org.id}, org.name as {org.name}, {emp.*} FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER ") -// .addEntity("org", Organization.class).addJoin("emp", "org.employments"); -// -// queryWithJoin.list(); -// list = queryWithJoin.list(); - assertEquals( 2,list.size() ); - - s.clear(); - - list = s.createSQLQuery( getOrganizationFetchJoinEmploymentSQL() ) - .addEntity( "org", Organization.class ) - .addJoin( "emp", "org.employments" ) - .list(); -// queryWithJoin = s.createSQLQuery( -// "SELECT org.orgid as {org.id}, org.name as {org.name}, emp.employer as {emp.key}, emp.empid as {emp.element}, {emp.element.*} FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER ") -// .addEntity("org", Organization.class).addJoin("emp", "org.employments"); -// -// list = queryWithJoin.list(); -// assertEquals( 2,list.size() ); -// -// s.clear(); -// -// queryWithJoin = s.createSQLQuery( -// "SELECT org.orgid as {org.id}, org.name as {org.name}, emp.employer as {emp.key}, emp.empid as {emp.element}, {emp.element.*} FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER ") -// .addEntity("org", Organization.class).addJoin("emp", "org.employments"); -// -// list = queryWithJoin.list(); - assertEquals( 2,list.size() ); - - s.clear(); - - // TODO : why twice? - s.getNamedQuery( "organizationreturnproperty" ).list(); - list = s.getNamedQuery( "organizationreturnproperty" ).list(); -// queryWithJoin = s.getNamedQuery("organizationreturnproperty"); -// queryWithJoin.list(); -// -// list = queryWithJoin.list(); - assertEquals( 2,list.size() ); - - s.clear(); - - // TODO : why twice? - s.getNamedQuery( "organizationautodetect" ).list(); - list = s.getNamedQuery( "organizationautodetect" ).list(); -// queryWithJoin = s.getNamedQuery("organizationautodetect"); -// queryWithJoin.list(); -// -// list = queryWithJoin.list(); - assertEquals( 2,list.size() ); - - t.commit(); - s.close(); - - s = openSession(); - t = s.beginTransaction(); - s.delete(emp2); - - s.delete(jboss); - s.delete(gavin); - s.delete(ifa); - t.commit(); - s.close(); - - } } Index: OracleSQLTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/OracleSQLTest.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- OracleSQLTest.java 10 Jan 2006 23:04:27 -0000 1.9 +++ OracleSQLTest.java 9 Feb 2006 17:26:48 -0000 1.10 @@ -4,8 +4,8 @@ import junit.framework.Test; import junit.framework.TestSuite; -import org.hibernate.dialect.Oracle9Dialect; import org.hibernate.dialect.Dialect; +import org.hibernate.dialect.Oracle9Dialect; /** * @author Gavin King Index: MSSQLEmployment.hbm.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/MSSQLEmployment.hbm.xml,v retrieving revision 1.4 retrieving revision 1.5 diff -u -d -r1.4 -r1.5 --- MSSQLEmployment.hbm.xml 10 Jan 2006 23:04:27 -0000 1.4 +++ MSSQLEmployment.hbm.xml 9 Feb 2006 17:26:49 -0000 1.5 @@ -10,7 +10,6 @@ This version is for Sybase/mssql --> - <hibernate-mapping package="org.hibernate.test.sql" default-access="field"> @@ -95,38 +94,6 @@ WHERE org.ORGID=? </sql-query> - <sql-query name="organizationreturnproperty"> - <return alias="org" class="Organization"> - <return-property name="id" column="orgid"/> - <return-property name="name" column="name"/> - </return> - <return-join alias="emp" property="org.employments"> - <return-property name="key" column="employer"/> - <return-property name="element" column="empid"/> - <return-property name="element.employee" column="EMPLOYEE"/> - <return-property name="element.employer" column="EMPLOYER"/> - <return-property name="element.startDate" column="XSTARTDATE"/> - <return-property name="element.endDate" column="ENDDATE"/> - <return-property name="element.regionCode" column="REGIONCODE"/> - <return-property name="element.employmentId" column="EMPID"/> - <return-property name="element.salary"> - <return-column name="VALUE"/> - <return-column name="CURRENCY"/> - </return-property> - </return-join> - SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as xstartDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY - FROM ORGANIZATION org - LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER - </sql-query> - - <sql-query name="organizationautodetect"> - <!-- equal to "organizationpropertyreturn" but since no {} nor return-property are used hibernate will fallback to use the columns directly from the mapping --> - <return alias="org" class="Organization"/> - <return-join alias="emp" property="org.employments"/> - SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as startDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY - FROM ORGANIZATION org - LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER - </sql-query> <!--sql-query name="organization"> <return alias="org" class="Organization"/> @@ -141,34 +108,9 @@ INNER JOIN EMPLOYMENT e ON e.EMPLOYER = org.ORGID </sql-query> - <sql-query name="orgNamesOnly"> - <return-scalar column="NAME"/> - SELECT org.NAME FROM ORGANIZATION org - </sql-query> - <sql-query name="orgNamesAndOrgs"> - <return-scalar column="thename" type="string"/> - <return alias="org" class="Organization"/> - SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} - FROM ORGANIZATION org - ORDER BY thename - </sql-query> - <sql-query name="orgsAndOrgNames"> - <return alias="org" class="Organization"/> - <return-scalar column="thename" type="string"/> - SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} - FROM ORGANIZATION org - ORDER BY thename - </sql-query> - <sql-query name="orgIdsAndOrgNames"> - <return-scalar column="orgid" type="long"/> - <return-scalar column="thename" type="string"/> - SELECT NAME AS thename, ORGID AS orgid - FROM ORGANIZATION - ORDER BY thename - </sql-query> <sql-query name="employment"> <return alias="emp" class="Employment"/> @@ -179,17 +121,6 @@ WHERE EMPID = ? </sql-query> - <sql-query name="AllEmploymentAsMapped"> - <return class="Employment"/> - SELECT * FROM EMPLOYMENT - </sql-query> - - <sql-query name="EmploymentAndPerson"> - <return class="Employment"/> - <return class="Person"/> - SELECT * FROM Employment, Person - </sql-query> - <sql-query name="organizationEmployments"> <load-collection alias="empcol" role="Organization.employments"/> SELECT {empcol.*} @@ -198,13 +129,6 @@ ORDER BY STARTDATE ASC, EMPLOYEE ASC </sql-query> - <sql-query name="organizationEmploymentsExplicitAliases"> - <load-collection alias="empcol" role="Organization.employments"/> - SELECT empcol.employer as {empcol.key}, empcol.empid as {empcol.element}, {empcol.element.*} - FROM EMPLOYMENT empcol - WHERE EMPLOYER = :id - ORDER BY STARTDATE ASC, EMPLOYEE ASC - </sql-query> <sql-query name="organizationCurrentEmployments"> <return alias="emp" class="Employment"> Index: OracleEmployment.hbm.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/OracleEmployment.hbm.xml,v retrieving revision 1.18 retrieving revision 1.19 diff -u -d -r1.18 -r1.19 --- OracleEmployment.hbm.xml 10 Jan 2006 23:04:27 -0000 1.18 +++ OracleEmployment.hbm.xml 9 Feb 2006 17:26:49 -0000 1.19 @@ -11,7 +11,6 @@ This version is for Oracle --> - <hibernate-mapping package="org.hibernate.test.sql" default-access="field"> @@ -21,7 +20,7 @@ <generator class="increment"/> </id> <property name="name" not-null="true"/> - <set lazy="true" name="employments" + <set name="employments" inverse="true" order-by="DUMMY"> <key column="employer"/> <!-- only needed for DDL generation --> @@ -29,7 +28,7 @@ <loader query-ref="organizationEmployments"/> </set> <!-- query-list name="currentEmployments" - query-ref="organizationCurrentEmployments"/--> + query-ref="organizationCurrentEmployments"--> <loader query-ref="organization"/> <sql-insert>INSERT INTO ORGANIZATION (NAME, ORGID) VALUES ( UPPER(?), ? )</sql-insert> <sql-update>UPDATE ORGANIZATION SET NAME=UPPER(?) WHERE ORGID=?</sql-update> @@ -82,57 +81,21 @@ <return-join alias="pers" property="emp.employee"/> </resultset> - <resultset name="org-description"> - <return alias="org" class="Organization"/> - <return-join alias="emp" property="org.employments"/> - </resultset> - <sql-query name="person"> <return alias="p" class="Person" lock-mode="upgrade"/> SELECT NAME AS {p.name}, PERID AS {p.id} FROM PERSON WHERE PERID=? /*FOR UPDATE*/ </sql-query> - <sql-query name="organization" resultset-ref="org-description"> - <!-- return alias="org" class="Organization"/> - <return-join alias="emp" property="org.employments"/ --> + <sql-query name="organization"> + <return alias="org" class="Organization"/> + <return-join alias="emp" property="org.employments"/> SELECT {org.*}, {emp.*} FROM ORGANIZATION org LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER WHERE org.ORGID=? </sql-query> - <sql-query name="organizationreturnproperty"> - <return alias="org" class="Organization"> - <return-property name="id" column="orgid"/> - <return-property name="name" column="name"/> - </return> - <return-join alias="emp" property="org.employments"> - <return-property name="key" column="employer"/> - <return-property name="element" column="empid"/> - <return-property name="element.employee" column="EMPLOYEE"/> - <return-property name="element.employer" column="EMPLOYER"/> - <return-property name="element.startDate" column="XSTARTDATE"/> - <return-property name="element.endDate" column="ENDDATE"/> - <return-property name="element.regionCode" column="REGIONCODE"/> - <return-property name="element.employmentId" column="EMPID"/> - <return-property name="element.salary"> - <return-column name="VALUE"/> - <return-column name="CURRENCY"/> - </return-property> - </return-join> - SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as xstartDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY - FROM ORGANIZATION org - LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER - </sql-query> - <sql-query name="organizationautodetect"> - <!-- equal to "organizationpropertyreturn" but since no {} nor return-property are used hibernate will fallback to use the columns directly from the mapping --> - <return alias="org" class="Organization"/> - <return-join alias="emp" property="org.employments"/> - SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as startDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY - FROM ORGANIZATION org - LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER - </sql-query> <!--sql-query name="organization"> <return alias="org" class="Organization"/> @@ -147,34 +110,9 @@ INNER JOIN EMPLOYMENT e ON e.EMPLOYER = org.ORGID </sql-query> - <sql-query name="orgNamesOnly"> - <return-scalar column="NAME" type="string"/> - SELECT org.NAME FROM ORGANIZATION org - </sql-query> - <sql-query name="orgNamesAndOrgs"> - <return-scalar column="thename" type="string"/> - <return alias="org" class="Organization"/> - SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} - FROM ORGANIZATION org - ORDER BY thename - </sql-query> - <sql-query name="orgsAndOrgNames"> - <return alias="org" class="Organization"/> - <return-scalar column="thename" type="string"/> - SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} - FROM ORGANIZATION org - ORDER BY thename - </sql-query> - <sql-query name="orgIdsAndOrgNames"> - <return-scalar column="orgid" type="long"/> - <return-scalar column="thename" type="string"/> - SELECT NAME AS thename, ORGID AS orgid - FROM ORGANIZATION - ORDER BY thename - </sql-query> <sql-query name="employment"> <return alias="emp" class="Employment"/> @@ -185,17 +123,7 @@ WHERE EMPID = ? </sql-query> - <sql-query name="AllEmploymentAsMapped"> - <return class="Employment"/> - SELECT * FROM EMPLOYMENT - </sql-query> - <sql-query name="EmploymentAndPerson"> - <return class="Employment"/> - <return class="Person"/> - SELECT * FROM Employment, Person - </sql-query> - <sql-query name="organizationEmployments"> <load-collection alias="empcol" role="Organization.employments"/> SELECT {empcol.*} @@ -204,13 +132,6 @@ ORDER BY STARTDATE ASC, EMPLOYEE ASC </sql-query> - <sql-query name="organizationEmploymentsExplicitAliases"> - <load-collection alias="empcol" role="Organization.employments"/> - SELECT empcol.employer as {empcol.key}, empcol.empid as {empcol.element}, {empcol.element.*} - FROM EMPLOYMENT empcol - WHERE EMPLOYER = :id - ORDER BY STARTDATE ASC, EMPLOYEE ASC - </sql-query> <sql-query name="organizationCurrentEmployments"> @@ -233,6 +154,11 @@ ORDER BY STARTDATE ASC </sql-query> + <sql-query name="simpleScalar" callable="true"> + <return-scalar column="name" type="string"/> + <return-scalar column="value" type="long"/> + { ? = call simpleScalar(:number) } + </sql-query> <sql-query name="paramhandling" callable="true"> <return-scalar column="value" type="long" /> <return-scalar column="value2" type="long" /> @@ -261,11 +187,6 @@ { ? = call allEmployments() } </sql-query> - <sql-query name="simpleScalar" callable="true"> - <return-scalar column="name" type="string"/> - <return-scalar column="value" type="long"/> - { ? = call simpleScalar(:number) } - </sql-query> <database-object> <create> Index: MySQLEmployment.hbm.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/MySQLEmployment.hbm.xml,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- MySQLEmployment.hbm.xml 18 Jan 2006 06:25:56 -0000 1.3 +++ MySQLEmployment.hbm.xml 9 Feb 2006 17:26:49 -0000 1.4 @@ -95,38 +95,7 @@ WHERE org.ORGID=? </sql-query> - <sql-query name="organizationreturnproperty"> - <return alias="org" class="Organization"> - <return-property name="id" column="orgid"/> - <return-property name="name" column="name"/> - </return> - <return-join alias="emp" property="org.employments"> - <return-property name="key" column="employer"/> - <return-property name="element" column="empid"/> - <return-property name="element.employee" column="EMPLOYEE"/> - <return-property name="element.employer" column="EMPLOYER"/> - <return-property name="element.startDate" column="STARTDATE"/> - <return-property name="element.endDate" column="ENDDATE"/> - <return-property name="element.regionCode" column="REGIONCODE"/> - <return-property name="element.employmentId" column="EMPID"/> - <return-property name="element.salary"> - <return-column name="VALUE"/> - <return-column name="CURRENCY"/> - </return-property> - </return-join> - SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as startDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY - FROM ORGANIZATION org - LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER - </sql-query> - <sql-query name="organizationautodetect"> - <!-- equal to "organizationpropertyreturn" but since no {} nor return-property are used hibernate will fallback to use the columns directly from the mapping --> - <return alias="org" class="Organization"/> - <return-join alias="emp" property="org.employments"/> - SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as startDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY - FROM ORGANIZATION org - LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER - </sql-query> <!--sql-query name="organization"> <return alias="org" class="Organization"/> @@ -141,35 +110,6 @@ INNER JOIN EMPLOYMENT e ON e.EMPLOYER = org.ORGID </sql-query> - <sql-query name="orgNamesOnly"> - <return-scalar column="NAME" type="string"/> - SELECT org.NAME FROM ORGANIZATION org - </sql-query> - - <sql-query name="orgNamesAndOrgs"> - <return-scalar column="thename" type="string"/> - <return alias="org" class="Organization"/> - SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} - FROM ORGANIZATION org - ORDER BY thename - </sql-query> - - <sql-query name="orgsAndOrgNames"> - <return alias="org" class="Organization"/> - <return-scalar column="thename" type="string"/> - SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} - FROM ORGANIZATION org - ORDER BY thename - </sql-query> - - <sql-query name="orgIdsAndOrgNames"> - <return-scalar column="orgid" type="long"/> - <return-scalar column="thename" type="string"/> - SELECT NAME AS thename, ORGID AS orgid - FROM ORGANIZATION - ORDER BY thename - </sql-query> - <sql-query name="employment"> <return alias="emp" class="Employment"/> SELECT EMPLOYEE AS {emp.employee}, EMPLOYER AS {emp.employer}, @@ -179,16 +119,6 @@ WHERE EMPID = ? </sql-query> - <sql-query name="AllEmploymentAsMapped"> - <return class="Employment"/> - SELECT * FROM EMPLOYMENT - </sql-query> - - <sql-query name="EmploymentAndPerson"> - <return class="Employment"/> - <return class="Person"/> - SELECT * FROM Employment, Person - </sql-query> <sql-query name="organizationEmployments"> <load-collection alias="empcol" role="Organization.employments"/> @@ -198,13 +128,6 @@ ORDER BY STARTDATE ASC, EMPLOYEE ASC </sql-query> - <sql-query name="organizationEmploymentsExplicitAliases"> - <load-collection alias="empcol" role="Organization.employments"/> - SELECT empcol.employer as {empcol.key}, empcol.empid as {empcol.element}, {empcol.element.*} - FROM EMPLOYMENT empcol - WHERE EMPLOYER = :id - ORDER BY STARTDATE ASC, EMPLOYEE ASC - </sql-query> <sql-query name="organizationCurrentEmployments"> <return alias="emp" class="Employment"> @@ -227,8 +150,8 @@ </sql-query> <sql-query name="simpleScalar" callable="true"> - <return-scalar column="name" type="string"/> - <return-scalar column="value" type="long"/> + <return-scalar column="name" type="string"/> + <return-scalar column="value" type="long"/> { call simpleScalar(:number) } </sql-query> Index: General.hbm.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/sql/General.hbm.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- General.hbm.xml 10 Jan 2006 23:04:27 -0000 1.1 +++ General.hbm.xml 9 Feb 2006 17:26:49 -0000 1.2 @@ -12,10 +12,139 @@ --> <hibernate-mapping package="org.hibernate.test.sql" default-access="field"> + <class name="Organization"> <id name="id" unsaved-value="0" column="orgid"> <generator class="increment"/> </id> <property name="name" not-null="true"/> - </class> + <set lazy="true" name="employments" + inverse="true"> + <key column="employer"/> <!-- only needed for DDL generation --> + <one-to-many class="Employment"/> + </set> + </class> + + <class name="Person"> + <id name="id" unsaved-value="0" column="perid"> + <generator class="increment"/> + </id> + <property name="name" not-null="true"/> + </class> + + <class name="Employment"> + <id name="employmentId" unsaved-value="0" column="empid"> + <generator class="increment"/> + </id> + <many-to-one name="employee" not-null="true" update="false"/> + <many-to-one name="employer" not-null="true" update="false"/> + <property name="startDate" not-null="false"/> + <property name="endDate" insert="false"/> + <property name="regionCode" update="false"/> + <property name="salary" type="org.hibernate.test.sql.MonetaryAmountUserType"> + <column name="VALUE" sql-type="float"/> + <column name="CURRENCY"/> + </property> + </class> + + <resultset name="org-emp-regionCode"> + <return-scalar column="regionCode" type="string"/> + <return alias="org" class="Organization"/> + <return-join alias="emp" property="org.employments"/> + </resultset> + + <resultset name="org-emp-person"> + <return alias="org" class="Organization"/> + <return-join alias="emp" property="org.employments"/> + <return-join alias="pers" property="emp.employee"/> + </resultset> + + + <resultset name="org-description"> + <return alias="org" class="Organization"/> + <return-join alias="emp" property="org.employments"/> + </resultset> + + <sql-query name="orgNamesOnly"> + <return-scalar column="NAME" type="string"/> + SELECT org.NAME FROM ORGANIZATION org + </sql-query> + + <sql-query name="orgNamesAndOrgs"> + <return-scalar column="thename" type="string"/> + <return alias="org" class="Organization"/> + SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} + FROM ORGANIZATION org + ORDER BY thename + </sql-query> + + <sql-query name="orgsAndOrgNames"> + <return alias="org" class="Organization"/> + <return-scalar column="thename" type="string"/> + SELECT org.NAME AS thename, org.NAME AS {org.name}, org.ORGID AS {org.id} + FROM ORGANIZATION org + ORDER BY thename + </sql-query> + + <sql-query name="orgIdsAndOrgNames"> + <return-scalar column="orgid" type="long"/> + <return-scalar column="thename" type="string"/> + SELECT NAME AS thename, ORGID AS orgid + FROM ORGANIZATION + ORDER BY thename + </sql-query> + + <sql-query name="AllEmploymentAsMapped"> + <return class="Employment"/> + SELECT * FROM EMPLOYMENT + </sql-query> + + <sql-query name="EmploymentAndPerson"> + <return class="Employment"/> + <return class="Person"/> + SELECT * FROM Employment, Person + </sql-query> + + <sql-query name="organizationEmploymentsExplicitAliases"> + <load-collection alias="empcol" role="Organization.employments"/> + SELECT empcol.employer as {empcol.key}, empcol.empid as {empcol.element}, {empcol.element.*} + FROM EMPLOYMENT empcol + WHERE EMPLOYER = :id + ORDER BY STARTDATE ASC, EMPLOYEE ASC + </sql-query> + + <sql-query name="organizationreturnproperty"> + <return alias="org" class="Organization"> + <return-property name="id" column="orgid"/> + <return-property name="name" column="name"/> + </return> + <return-join alias="emp" property="org.employments"> + <return-property name="key" column="employer"/> + <return-property name="element" column="empid"/> + <return-property name="element.employee" column="EMPLOYEE"/> + <return-property name="element.employer" column="EMPLOYER"/> + <return-property name="element.startDate" column="XSTARTDATE"/> + <return-property name="element.endDate" column="ENDDATE"/> + <return-property name="element.regionCode" column="REGIONCODE"/> + <return-property name="element.employmentId" column="EMPID"/> + <return-property name="element.salary"> + <return-column name="VALUE"/> + <return-column name="CURRENCY"/> + </return-property> + </return-join> + SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as xstartDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY + FROM ORGANIZATION org + LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER + </sql-query> + + + <sql-query name="organizationautodetect" resultset-ref="org-description"> + <!-- equal to "organizationpropertyreturn" but since no {} nor return-property are used hibernate will fallback to use the columns directly from the mapping --> + <return alias="org" class="Organization"/> + <return-join alias="emp" property="org.employments"/> + SELECT org.orgid as orgid, org.name as name, emp.employer as employer, emp.empid as empid, emp.employee as employee, emp.employer as employer, emp.startDate as startDate, emp.endDate as endDate, emp.regionCode as regionCode, emp.VALUE as VALUE, emp.CURRENCY as CURRENCY + FROM ORGANIZATION org + LEFT OUTER JOIN EMPLOYMENT emp ON org.ORGID = emp.EMPLOYER + </sql-query> + </hibernate-mapping> \ No newline at end of file |
From: <ste...@us...> - 2006-02-09 12:37:48
|
Update of /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/hql In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19666/test/org/hibernate/test/hql Modified Files: HQLTest.java Log Message: HHH-1446 : Antlr exception handling Index: HQLTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/hql/HQLTest.java,v retrieving revision 1.178 retrieving revision 1.179 diff -u -d -r1.178 -r1.179 --- HQLTest.java 27 Jan 2006 23:40:31 -0000 1.178 +++ HQLTest.java 9 Feb 2006 12:37:36 -0000 1.179 @@ -1059,7 +1059,7 @@ DetailedSemanticException dse = new DetailedSemanticException( "test" ); dse.printStackTrace(); dse.printStackTrace( new PrintWriter( new StringWriter() ) ); - QuerySyntaxException qse = new QuerySyntaxException( new RecognitionException( "test" ), "from bozo b where b.clown = true" ); + QuerySyntaxException qse = QuerySyntaxException.convert( new RecognitionException( "test" ), "from bozo b where b.clown = true" ); assertNotNull( qse.getMessage() ); } |
From: <ste...@us...> - 2006-02-09 12:37:28
|
Update of /cvsroot/hibernate/Hibernate3/src/org/hibernate/hql/ast In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19563/src/org/hibernate/hql/ast Modified Files: ErrorCounter.java QuerySyntaxException.java QueryTranslatorImpl.java Log Message: HHH-1446 : Antlr exception handling Index: ErrorCounter.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/hql/ast/ErrorCounter.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- ErrorCounter.java 16 Jul 2005 22:25:42 -0000 1.9 +++ ErrorCounter.java 9 Feb 2006 12:37:19 -0000 1.10 @@ -56,7 +56,7 @@ public void throwQueryException() throws QueryException { if ( getErrorCount() > 0 ) { if ( recognitionExceptions.size() > 0 ) { - throw new QuerySyntaxException( ( RecognitionException ) recognitionExceptions.get( 0 ) ); + throw QuerySyntaxException.convert( ( RecognitionException ) recognitionExceptions.get( 0 ) ); } else { throw new QueryException( getErrorString() ); Index: QuerySyntaxException.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/hql/ast/QuerySyntaxException.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- QuerySyntaxException.java 16 Jul 2005 22:25:42 -0000 1.1 +++ QuerySyntaxException.java 9 Feb 2006 12:37:19 -0000 1.2 @@ -7,23 +7,28 @@ /** * Exception thrown when there is a syntax error in the HQL. * - * @author josh Dec 5, 2004 7:22:54 PM + * @author josh */ public class QuerySyntaxException extends QueryException { - - public QuerySyntaxException(RecognitionException e) { - super( e.getMessage() + ( - ( e.getLine() > 0 && e.getColumn() > 0 ) ? - ( " near line " + e.getLine() + ", column " + e.getColumn() ) : "" - ), e ); + + public QuerySyntaxException(String message) { + super( message ); } - public QuerySyntaxException(RecognitionException e, String hql) { - super( e.getMessage() + ( - ( e.getLine() > 0 && e.getColumn() > 0 ) ? - ( " near line " + e.getLine() + ", column " + e.getColumn() ) : "" - ), e ); + public QuerySyntaxException(String message, String hql) { + this( message ); setQueryString( hql ); } - + + public static QuerySyntaxException convert(RecognitionException e) { + return convert( e, null ); + } + + public static QuerySyntaxException convert(RecognitionException e, String hql) { + String positionInfo = e.getLine() > 0 && e.getColumn() > 0 + ? " near line " + e.getLine() + ", column " + e.getColumn() + : ""; + return new QuerySyntaxException( e.getMessage() + positionInfo, hql ); + } + } Index: QueryTranslatorImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/hql/ast/QueryTranslatorImpl.java,v retrieving revision 1.68 retrieving revision 1.69 diff -u -d -r1.68 -r1.69 --- QueryTranslatorImpl.java 27 Jan 2006 23:38:08 -0000 1.68 +++ QueryTranslatorImpl.java 9 Feb 2006 12:37:19 -0000 1.69 @@ -186,12 +186,20 @@ throw qe; } catch ( RecognitionException e ) { - throw new QuerySyntaxException( e, hql ); + // we do not actually propogate ANTLRExceptions as a cause, so + // log it here for diagnostic purposes + if ( log.isTraceEnabled() ) { + log.trace( "converted antlr.RecognitionException", e ); + } + throw QuerySyntaxException.convert( e, hql ); } catch ( ANTLRException e ) { - QueryException qe = new QueryException( e.getMessage(), e ); - qe.setQueryString( hql ); - throw qe; + // we do not actually propogate ANTLRExceptions as a cause, so + // log it here for diagnostic purposes + if ( log.isTraceEnabled() ) { + log.trace( "converted antlr.ANTLRException", e ); + } + throw new QueryException( e.getMessage(), hql ); } this.enabledFilters = null; //only needed during compilation phase... |
From: <ste...@us...> - 2006-02-09 12:37:27
|
Update of /cvsroot/hibernate/Hibernate3/src/org/hibernate/hql/ast/util In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19563/src/org/hibernate/hql/ast/util Modified Files: SessionFactoryHelper.java Log Message: HHH-1446 : Antlr exception handling Index: SessionFactoryHelper.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/hql/ast/util/SessionFactoryHelper.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- SessionFactoryHelper.java 30 Nov 2005 13:49:03 -0000 1.3 +++ SessionFactoryHelper.java 9 Feb 2006 12:37:19 -0000 1.4 @@ -154,7 +154,8 @@ cp = findEntityPersisterByName( name ); if ( cp == null ) { // throw new SemanticException( name + " is not mapped." ); - throw new QuerySyntaxException( new SemanticException( name + " is not mapped." ) ); +// throw new QuerySyntaxException( new SemanticException( name + " is not mapped." ) ); + throw new QuerySyntaxException( name + " is not mapped" ); } } catch ( MappingException e ) { @@ -221,7 +222,7 @@ * * @param role The collection role * @param roleAlias The sql column-qualification alias (i.e., the table alias) - * @return + * @return the collection element columns */ public String[] getCollectionElementColumns(String role, String roleAlias) { return getCollectionPropertyMapping( role ).toColumns( roleAlias, CollectionPropertyNames.COLLECTION_ELEMENTS ); |
From: <ste...@us...> - 2006-02-09 12:37:27
|
Update of /cvsroot/hibernate/Hibernate3/src/org/hibernate/hql/ast/exec In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv19563/src/org/hibernate/hql/ast/exec Modified Files: BasicExecutor.java Log Message: HHH-1446 : Antlr exception handling Index: BasicExecutor.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/hql/ast/exec/BasicExecutor.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- BasicExecutor.java 21 Nov 2005 17:02:24 -0000 1.3 +++ BasicExecutor.java 9 Feb 2006 12:37:19 -0000 1.4 @@ -42,7 +42,7 @@ gen.getParseErrorHandler().throwQueryException(); } catch ( RecognitionException e ) { - throw new QuerySyntaxException( e ); + throw QuerySyntaxException.convert( e ); } } |
From: <epb...@us...> - 2006-02-08 23:26:51
|
Update of /cvsroot/hibernate/HibernateExt/metadata/src/java/org/hibernate/validator/resources In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15886/metadata/src/java/org/hibernate/validator/resources Modified Files: DefaultValidatorMessages_de.properties Log Message: ANN-239 Index: DefaultValidatorMessages_de.properties =================================================================== RCS file: /cvsroot/hibernate/HibernateExt/metadata/src/java/org/hibernate/validator/resources/DefaultValidatorMessages_de.properties,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- DefaultValidatorMessages_de.properties 26 Dec 2005 14:07:32 -0000 1.2 +++ DefaultValidatorMessages_de.properties 8 Feb 2006 23:26:43 -0000 1.3 @@ -3,10 +3,10 @@ validator.future=muss in der Zukunft liegen validator.length=muss zwischen {min} und {max} lang sein validator.max=muss weniger oder gleich {value} sein -validator.min=mess mehr oder gleich {value} sein +validator.min=muss mehr oder gleich {value} sein validator.notNull=kann nicht leer sein validator.past=muss in der Vergangenheit liegen -validator.pattern=muss Ausruck "{regex}" entsprechen +validator.pattern=muss Ausdruck "{regex}" entsprechen validator.range=muss zwischen {min} und {max} sein validator.size=muss zwischen {min} und {max} gross sein validator.email=not a well-formed email address \ No newline at end of file |
Update of /cvsroot/hibernate/Hibernate3/src/org/hibernate/transaction In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28070/src/org/hibernate/transaction Modified Files: Tag: Branch_3_1 CacheSynchronization.java JDBCTransaction.java JTATransaction.java TransactionFactory.java Log Message: HHH-1287 : more websphere transaction issues (yaay!) Index: CacheSynchronization.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/transaction/CacheSynchronization.java,v retrieving revision 1.8 retrieving revision 1.8.2.1 diff -u -d -r1.8 -r1.8.2.1 --- CacheSynchronization.java 15 Aug 2005 09:23:05 -0000 1.8 +++ CacheSynchronization.java 8 Feb 2006 22:47:34 -0000 1.8.2.1 @@ -85,7 +85,7 @@ jdbcContext.afterTransactionCompletion(status==Status.STATUS_COMMITTED, hibernateTransaction); } finally { - if ( ctx.shouldAutoClose() && ctx.isOpen() ) { + if ( ctx.shouldAutoClose() && !ctx.isClosed() ) { log.trace("automatically closing session"); ctx.managedClose(); } Index: JDBCTransaction.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/transaction/JDBCTransaction.java,v retrieving revision 1.17 retrieving revision 1.17.2.1 diff -u -d -r1.17 -r1.17.2.1 --- JDBCTransaction.java 28 Oct 2005 10:17:26 -0000 1.17 +++ JDBCTransaction.java 8 Feb 2006 22:47:34 -0000 1.17.2.1 @@ -84,7 +84,7 @@ } private void closeIfRequired() throws HibernateException { - if ( callback && transactionContext.shouldAutoClose() && transactionContext.isOpen() ) { + if ( callback && transactionContext.shouldAutoClose() && !transactionContext.isClosed() ) { try { transactionContext.managedClose(); } Index: JTATransaction.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/transaction/JTATransaction.java,v retrieving revision 1.17 retrieving revision 1.17.2.1 diff -u -d -r1.17 -r1.17.2.1 --- JTATransaction.java 29 Sep 2005 23:33:29 -0000 1.17 +++ JTATransaction.java 8 Feb 2006 22:47:34 -0000 1.17.2.1 @@ -318,7 +318,7 @@ private void closeIfRequired() throws HibernateException { boolean close = callback && transactionContext.shouldAutoClose() && - transactionContext.isOpen(); + !transactionContext.isClosed(); if ( close ) { transactionContext.managedClose(); } Index: TransactionFactory.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/transaction/TransactionFactory.java,v retrieving revision 1.7 retrieving revision 1.7.2.1 diff -u -d -r1.7 -r1.7.2.1 --- TransactionFactory.java 10 Dec 2005 17:25:32 -0000 1.7 +++ TransactionFactory.java 8 Feb 2006 22:47:34 -0000 1.7.2.1 @@ -22,7 +22,7 @@ public static interface Context { public SessionFactoryImplementor getFactory(); - public boolean isOpen(); + public boolean isClosed(); public boolean isFlushModeNever(); public boolean isFlushBeforeCompletionEnabled(); |
From: <ste...@us...> - 2006-02-08 22:47:42
|
Update of /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28070/src/org/hibernate/impl Modified Files: Tag: Branch_3_1 AbstractSessionImpl.java SessionImpl.java StatelessSessionImpl.java Log Message: HHH-1287 : more websphere transaction issues (yaay!) Index: AbstractSessionImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl/AbstractSessionImpl.java,v retrieving revision 1.5 retrieving revision 1.5.2.1 diff -u -d -r1.5 -r1.5.2.1 --- AbstractSessionImpl.java 11 Jan 2006 22:38:05 -0000 1.5 +++ AbstractSessionImpl.java 8 Feb 2006 22:47:33 -0000 1.5.2.1 @@ -37,7 +37,7 @@ return factory; } - protected boolean isClosed() { + public boolean isClosed() { return closed; } Index: SessionImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl/SessionImpl.java,v retrieving revision 1.178 retrieving revision 1.178.2.1 diff -u -d -r1.178 -r1.178.2.1 --- SessionImpl.java 1 Feb 2006 19:58:27 -0000 1.178 +++ SessionImpl.java 8 Feb 2006 22:47:33 -0000 1.178.2.1 @@ -341,7 +341,7 @@ } public boolean shouldAutoClose() { - return isAutoCloseSessionEnabled() && isOpen(); + return isAutoCloseSessionEnabled() && !isClosed(); } public void managedClose() { @@ -1749,7 +1749,7 @@ public String toString() { StringBuffer buf = new StringBuffer(500) .append( "SessionImpl(" ); - if ( isOpen() ) { + if ( !isClosed() ) { buf.append(persistenceContext) .append(";") .append(actionQueue); Index: StatelessSessionImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl/StatelessSessionImpl.java,v retrieving revision 1.21 retrieving revision 1.21.2.1 diff -u -d -r1.21 -r1.21.2.1 --- StatelessSessionImpl.java 20 Jan 2006 12:57:29 -0000 1.21 +++ StatelessSessionImpl.java 8 Feb 2006 22:47:33 -0000 1.21.2.1 @@ -146,7 +146,7 @@ } public void managedClose() { - if ( ! isOpen() ) { + if ( isClosed() ) { throw new SessionException( "Session was already closed!" ); } jdbcContext.getConnectionManager().close(); @@ -159,7 +159,7 @@ } public boolean shouldAutoClose() { - return isAutoCloseSessionEnabled() && isOpen(); + return isAutoCloseSessionEnabled() && !isClosed(); } public void afterTransactionCompletion(boolean successful, Transaction tx) {} |
From: <ste...@us...> - 2006-02-08 22:47:41
|
Update of /cvsroot/hibernate/Hibernate3/src/org/hibernate/jdbc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28070/src/org/hibernate/jdbc Modified Files: Tag: Branch_3_1 JDBCContext.java Log Message: HHH-1287 : more websphere transaction issues (yaay!) Index: JDBCContext.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/jdbc/JDBCContext.java,v retrieving revision 1.27.2.1 retrieving revision 1.27.2.2 diff -u -d -r1.27.2.1 -r1.27.2.2 --- JDBCContext.java 3 Feb 2006 20:18:39 -0000 1.27.2.1 +++ JDBCContext.java 8 Feb 2006 22:47:34 -0000 1.27.2.2 @@ -122,7 +122,7 @@ } public Connection connection() throws HibernateException { - if ( !owner.isOpen() ) { + if ( owner.isClosed() ) { throw new SessionException( "Session is closed" ); } |
Update of /cvsroot/hibernate/Hibernate3/src/org/hibernate/transaction In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22151/src/org/hibernate/transaction Modified Files: CacheSynchronization.java JDBCTransaction.java JTATransaction.java TransactionFactory.java Log Message: HHH-1287 : more websphere transaction issues (yaay!) Index: CacheSynchronization.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/transaction/CacheSynchronization.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -d -r1.8 -r1.9 --- CacheSynchronization.java 15 Aug 2005 09:23:05 -0000 1.8 +++ CacheSynchronization.java 8 Feb 2006 22:34:34 -0000 1.9 @@ -85,7 +85,7 @@ jdbcContext.afterTransactionCompletion(status==Status.STATUS_COMMITTED, hibernateTransaction); } finally { - if ( ctx.shouldAutoClose() && ctx.isOpen() ) { + if ( ctx.shouldAutoClose() && !ctx.isClosed() ) { log.trace("automatically closing session"); ctx.managedClose(); } Index: JDBCTransaction.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/transaction/JDBCTransaction.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- JDBCTransaction.java 28 Oct 2005 10:17:26 -0000 1.17 +++ JDBCTransaction.java 8 Feb 2006 22:34:34 -0000 1.18 @@ -84,7 +84,7 @@ } private void closeIfRequired() throws HibernateException { - if ( callback && transactionContext.shouldAutoClose() && transactionContext.isOpen() ) { + if ( callback && transactionContext.shouldAutoClose() && !transactionContext.isClosed() ) { try { transactionContext.managedClose(); } Index: JTATransaction.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/transaction/JTATransaction.java,v retrieving revision 1.17 retrieving revision 1.18 diff -u -d -r1.17 -r1.18 --- JTATransaction.java 29 Sep 2005 23:33:29 -0000 1.17 +++ JTATransaction.java 8 Feb 2006 22:34:34 -0000 1.18 @@ -318,7 +318,7 @@ private void closeIfRequired() throws HibernateException { boolean close = callback && transactionContext.shouldAutoClose() && - transactionContext.isOpen(); + !transactionContext.isClosed(); if ( close ) { transactionContext.managedClose(); } Index: TransactionFactory.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/transaction/TransactionFactory.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- TransactionFactory.java 10 Dec 2005 17:25:32 -0000 1.7 +++ TransactionFactory.java 8 Feb 2006 22:34:34 -0000 1.8 @@ -22,7 +22,8 @@ public static interface Context { public SessionFactoryImplementor getFactory(); - public boolean isOpen(); +// public boolean isOpen(); + public boolean isClosed(); public boolean isFlushModeNever(); public boolean isFlushBeforeCompletionEnabled(); |
From: <ste...@us...> - 2006-02-08 22:34:46
|
Update of /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22151/src/org/hibernate/impl Modified Files: AbstractSessionImpl.java SessionImpl.java StatelessSessionImpl.java Log Message: HHH-1287 : more websphere transaction issues (yaay!) Index: AbstractSessionImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl/AbstractSessionImpl.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -r1.5 -r1.6 --- AbstractSessionImpl.java 11 Jan 2006 22:38:05 -0000 1.5 +++ AbstractSessionImpl.java 8 Feb 2006 22:34:34 -0000 1.6 @@ -37,7 +37,7 @@ return factory; } - protected boolean isClosed() { + public boolean isClosed() { return closed; } Index: SessionImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl/SessionImpl.java,v retrieving revision 1.179 retrieving revision 1.180 diff -u -d -r1.179 -r1.180 --- SessionImpl.java 8 Feb 2006 18:36:45 -0000 1.179 +++ SessionImpl.java 8 Feb 2006 22:34:34 -0000 1.180 @@ -341,7 +341,7 @@ } public boolean shouldAutoClose() { - return isAutoCloseSessionEnabled() && isOpen(); + return isAutoCloseSessionEnabled() && !isClosed(); } public void managedClose() { @@ -1748,7 +1748,7 @@ public String toString() { StringBuffer buf = new StringBuffer(500) .append( "SessionImpl(" ); - if ( isOpen() ) { + if ( !isClosed() ) { buf.append(persistenceContext) .append(";") .append(actionQueue); Index: StatelessSessionImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl/StatelessSessionImpl.java,v retrieving revision 1.21 retrieving revision 1.22 diff -u -d -r1.21 -r1.22 --- StatelessSessionImpl.java 20 Jan 2006 12:57:29 -0000 1.21 +++ StatelessSessionImpl.java 8 Feb 2006 22:34:34 -0000 1.22 @@ -146,7 +146,7 @@ } public void managedClose() { - if ( ! isOpen() ) { + if ( isClosed() ) { throw new SessionException( "Session was already closed!" ); } jdbcContext.getConnectionManager().close(); @@ -159,7 +159,7 @@ } public boolean shouldAutoClose() { - return isAutoCloseSessionEnabled() && isOpen(); + return isAutoCloseSessionEnabled() && !isClosed(); } public void afterTransactionCompletion(boolean successful, Transaction tx) {} |
From: <ste...@us...> - 2006-02-08 22:34:45
|
Update of /cvsroot/hibernate/Hibernate3/src/org/hibernate/jdbc In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22151/src/org/hibernate/jdbc Modified Files: JDBCContext.java Log Message: HHH-1287 : more websphere transaction issues (yaay!) Index: JDBCContext.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/jdbc/JDBCContext.java,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -r1.28 -r1.29 --- JDBCContext.java 3 Feb 2006 22:08:24 -0000 1.28 +++ JDBCContext.java 8 Feb 2006 22:34:34 -0000 1.29 @@ -121,7 +121,7 @@ } public Connection connection() throws HibernateException { - if ( !owner.isOpen() ) { + if ( owner.isClosed() ) { throw new SessionException( "Session is closed" ); } |
From: <ste...@us...> - 2006-02-08 22:25:51
|
Update of /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/legacy In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17574/test/org/hibernate/test/legacy Modified Files: FooBarTest.java FumTest.java MasterDetailTest.java SQLLoaderTest.java Log Message: HHH-1410: no auto-flush outside transactions Index: FooBarTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/legacy/FooBarTest.java,v retrieving revision 1.36 retrieving revision 1.37 diff -u -d -r1.36 -r1.37 --- FooBarTest.java 10 Jan 2006 16:13:47 -0000 1.36 +++ FooBarTest.java 8 Feb 2006 22:25:37 -0000 1.37 @@ -333,6 +333,7 @@ public void testQuery() throws Exception { Session s = openSession(); + Transaction txn = s.beginTransaction(); Foo foo = new Foo(); s.save(foo); Foo foo2 = new Foo(); @@ -665,11 +666,11 @@ assertTrue(len==2); s.delete("from Holder"); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); baz = (Baz) s.createQuery("from Baz baz left outer join fetch baz.manyToAny").uniqueResult(); assertTrue( Hibernate.isInitialized( baz.getManyToAny() ) ); assertTrue( baz.getManyToAny().size()==2 ); @@ -699,8 +700,7 @@ s.delete(baz); s.delete( foop.getFoo() ); s.delete(foop); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } @@ -1490,6 +1490,7 @@ public void testLimit() throws Exception { Session s = openSession(); + Transaction txn = s.beginTransaction(); for ( int i=0; i<10; i++ ) s.save( new Foo() ); Iterator iter = s.createQuery("from Foo foo") .setMaxResults(4) @@ -1523,8 +1524,7 @@ } assertTrue(count==3); assertTrue( s.delete("from Foo foo")==10 ); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } @@ -1589,7 +1589,9 @@ baz.setCascadingBars( new HashSet() ); baz.getCascadingBars().add(bar); bar.setBaz(baz); + Session s = openSession(); + Transaction txn = s.beginTransaction(); s.save(baz); s.save(bar2); @@ -1645,8 +1647,7 @@ s.delete(baz); s.delete(bar2); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } @@ -1756,6 +1757,7 @@ public void testFindByCriteria() throws Exception { if ( getDialect() instanceof DB2Dialect ) return; Session s = openSession(); + Transaction txn = s.beginTransaction(); Foo f = new Foo(); s.save(f); s.flush(); @@ -1844,11 +1846,11 @@ f.setFoo( new Foo() ); s.save( f.getFoo() ); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); list = s.createCriteria(Foo.class) .add( Expression.eq( "integer", f.getInteger() ) ) .add( Expression.like( "string", f.getString() ) ) @@ -1873,8 +1875,7 @@ s.delete( f.getFoo() ); s.delete(f); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } @@ -2180,6 +2181,7 @@ public void testNewFlushing() throws Exception { Session s = openSession(); + Transaction txn = s.beginTransaction(); Baz baz = new Baz(); baz.setDefaults(); s.save(baz); @@ -2229,14 +2231,13 @@ assertTrue( iter.hasNext() ); s.delete(baz); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } public void testPersistCollections() throws Exception { - Session s = openSession(); + Transaction txn = s.beginTransaction(); assertTrue( ( (Integer) s.iterate("select count(*) from Bar").next() ).intValue()==0 ); assertTrue( s.iterate("select count(*) from Bar b").next().equals( new Integer(0) ) ); assertFalse( s.iterate("from Glarch g").hasNext() ); @@ -2253,11 +2254,11 @@ sgm.put( "b", new Glarch() ); baz.setStringGlarchMap(sgm); //System.out.println( s.print(baz) ); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); assertTrue( ( (Integer) s.iterate("select count(*) from Bar").next() ).intValue()==1 ); baz = (Baz) ( (Object[]) s.find("select baz, baz from Baz baz").get(0) )[1]; assertTrue( baz.getCascadingBars().size()==1 ); @@ -2290,11 +2291,11 @@ List list = s.find("select foo from Baz baz join baz.fooSet foo"); assertTrue( "association.elements find", list.size()==1 ); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); assertTrue( ( (Integer) s.iterate("select count(*) from Bar").next() ).intValue()==1 ); baz = (Baz) s.find("select baz from Baz baz order by baz").get(0); assertTrue( "collection of custom types - added element", baz.getCustoms().size()==4 && baz.getCustoms().get(0)!=null ); @@ -2310,10 +2311,11 @@ baz.getStringSet().add("two"); baz.getStringSet().add("one"); baz.getBag().add("three"); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); + s = openSession(); + txn = s.beginTransaction(); baz = (Baz) s.find("select baz from Baz baz order by baz").get(0); assertTrue( baz.getStringSet().size()==2 ); assertTrue( baz.getStringSet().first().equals("one") ); @@ -2321,11 +2323,11 @@ assertTrue( baz.getBag().size()==5 ); baz.getStringSet().remove("two"); baz.getBag().remove("duplicate"); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); assertTrue( ( (Integer) s.iterate("select count(*) from Bar").next() ).intValue()==1 ); baz = (Baz) s.load(Baz.class, baz.getCode()); assertTrue( baz.getCascadingBars().size()==1 ); @@ -2351,22 +2353,23 @@ map = new HashMap(); map.put(bar, g); baz.setGlarchToFoo(map); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); baz = (Baz) s.find("select baz from Baz baz order by baz").get(0); assertTrue( baz.getCascadingBars().size()==1 ); Session s2 = openSession(); + Transaction txn2 = s2.beginTransaction(); assertTrue( ( (Integer) s2.iterate("select count(*) from Bar").next() ).intValue()==3 ); Baz baz2 = (Baz) s2.find("select baz from Baz baz order by baz").get(0); Object o = baz2.getFooComponentToFoo().get( new FooComponent("name", 123, null, null) ); assertTrue( o==baz2.getFooComponentToFoo().get( new FooComponent("nameName", 12, null, null) ) && o!=null ); - s2.connection().commit(); + txn2.commit(); s2.close(); assertTrue( Hibernate.isInitialized( baz.getFooToGlarch() ) ); @@ -2391,24 +2394,24 @@ g = (GlarchProxy) baz.getTopGlarchez().get( new Character('G') ); baz.getTopGlarchez().put( new Character('H'), g ); baz.getTopGlarchez().put( new Character('G'), g2 ); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); baz = (Baz) s.load(Baz.class, baz.getCode()); assertTrue( baz.getTopGlarchez().size()==2 ); assertTrue( baz.getCascadingBars().size()==1 ); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); assertTrue( ( (Integer) s.iterate("select count(*) from Bar").next() ).intValue()==3 ); baz = (Baz) s.find("select baz from Baz baz order by baz").get(0); assertTrue( baz.getTopGlarchez().size()==2 ); assertTrue( baz.getCascadingBars().size()==1 ); - - s.connection().commit(); + txn.commit(); s.disconnect(); @@ -2416,6 +2419,7 @@ s.close(); s2.reconnect(); + txn2 = s2.beginTransaction(); baz = (Baz) s2.load(Baz.class, baz.getCode()); assertTrue( ( (Integer) s2.iterate("select count(*) from Bar").next() ).intValue()==3 ); s2.delete(baz); @@ -2433,9 +2437,7 @@ s2.load( Qux.class, new Long(666) ); //nonexistent assertTrue( s2.delete("from Glarch g")==1 ); - - s2.flush(); - s2.connection().commit(); + txn2.commit(); s2.disconnect(); @@ -2681,6 +2683,7 @@ public void testFind() throws Exception { Session s = openSession(); + Transaction txn = s.beginTransaction(); Bar bar = new Bar(); s.save(bar); @@ -2707,11 +2710,11 @@ assertTrue( "select from a subclass", list2.size()==1); Trivial t = new Trivial(); s.save(t); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); list1 = s.find("from Foo foo where foo.string='foo bar'"); assertTrue( "find size", list1.size()==1 ); // There is an interbase bug that causes null integers to return as 0, also numeric precision is <= 15 @@ -2732,8 +2735,7 @@ } list2 = s.find("from Foo foo"); assertTrue( "find deleted", list2.size()==0); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } @@ -2971,6 +2973,7 @@ public void testVersioning() throws Exception { Session s = openSession(); + Transaction txn = s.beginTransaction(); GlarchProxy g = new Glarch(); s.save(g); GlarchProxy g2 = new Glarch(); @@ -2978,13 +2981,13 @@ Serializable gid = s.getIdentifier(g); Serializable g2id = s.getIdentifier(g2); g.setName("glarch"); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); getSessions().evict(Glarch.class); s = openSession(); + txn = s.beginTransaction(); g = (GlarchProxy) s.load( Glarch.class, gid ); s.lock(g, LockMode.UPGRADE); g2 = (GlarchProxy) s.load( Glarch.class, g2id ); @@ -2997,13 +3000,13 @@ s.find("from Glarch g where g.version=2").size()==1 ); g.setName("bar"); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); getSessions().evict(Glarch.class); s = openSession(); + txn = s.beginTransaction(); g = (GlarchProxy) s.load( Glarch.class, gid ); g2 = (GlarchProxy) s.load( Glarch.class, g2id ); assertTrue( "version", g.getVersion()==3 ); @@ -3013,8 +3016,7 @@ g2.setNext(g); s.delete(g2); s.delete(g); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } @@ -3174,6 +3176,7 @@ //Non polymorphic class (there is an implementation optimization //being tested here) Session s = openSession(); + Transaction txn = s.beginTransaction(); GlarchProxy last = new Glarch(); s.save(last); last.setOrder( (short) 0 ); @@ -3190,32 +3193,32 @@ } List list = s.find("from Glarch g"); assertTrue( "recursive find", list.size()==6 ); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); list = s.find("from Glarch g"); assertTrue( "recursive iter", list.size()==6 ); list = s.find("from Glarch g where g.next is not null"); assertTrue( "recursive iter", list.size()==5 ); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); iter = s.iterate("from Glarch g order by g.order asc"); while ( iter.hasNext() ) { GlarchProxy g = (GlarchProxy) iter.next(); assertTrue( "not null", g!=null ); iter.remove(); } - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); //Same thing but using polymorphic class (no optimisation possible): s = openSession(); + txn = s.beginTransaction(); FooProxy flast = new Bar(); s.save(flast); flast.setString( "foo0" ); @@ -3232,36 +3235,36 @@ } list = s.find("from Foo foo"); assertTrue( "recursive find", list.size()==6 ); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); list = s.find("from Foo foo"); assertTrue( "recursive iter", list.size()==6 ); iter = list.iterator(); while ( iter.hasNext() ) { assertTrue( "polymorphic recursive load", iter.next() instanceof BarProxy ); } - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); iter = s.iterate("from Foo foo order by foo.string asc"); while ( iter.hasNext() ) { BarProxy bar = (BarProxy) iter.next(); assertTrue( "not null", bar!=null ); iter.remove(); } - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } public void testScrollableIterator() throws Exception { if ( getDialect() instanceof DB2Dialect || getDialect() instanceof OracleDialect || getDialect() instanceof SybaseDialect || getDialect() instanceof HSQLDialect ) { Session s = openSession(); + Transaction txn = s.beginTransaction(); s.save( new Foo() ); s.save( new Foo() ); s.save( new Foo() ); @@ -3290,10 +3293,11 @@ assertTrue( iter.last() ); assertTrue( iter.get(0)==f4 ); assertTrue( iter.previous() ); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); query = s.createQuery("select f, f.integer from Foo f"); assertTrue( query.getReturnTypes().length==2 ); iter = query.scroll(); @@ -3322,13 +3326,14 @@ assertTrue( s.delete("from Foo")==4 ); s.flush(); assertTrue( s.find("from java.lang.Object").size()==0 ); - s.connection().commit(); + txn.commit(); s.close(); } } public void testMultiColumnQueries() throws Exception { Session s = openSession(); + Transaction txn = s.beginTransaction(); Foo foo = new Foo(); s.save(foo); Foo foo1 = new Foo(); @@ -3363,11 +3368,11 @@ row = (Object[]) l.get(0); assertTrue( "multi-column find", row[0]==foo && row[1]==foo.getFoo() ); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); Iterator iter = s.iterate("select parent, child from Foo parent, Foo child where parent.foo = child and parent.string='a string'"); int deletions=0; while ( iter.hasNext() ) { @@ -3377,8 +3382,7 @@ deletions++; } assertTrue("multi-column iterate", deletions==1); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } @@ -3623,15 +3627,18 @@ public void testComponents() throws Exception { Session s = openSession(); + Transaction txn = s.beginTransaction(); Foo foo = new Foo(); foo.setComponent( new FooComponent("foo", 69, null, new FooComponent("bar", 96, null, null) ) ); s.save(foo); foo.getComponent().setName("IFA"); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); + foo.setComponent(null); + s = openSession(); + txn = s.beginTransaction(); s.load( foo, foo.getKey() ); assertTrue( "save components", @@ -3640,11 +3647,13 @@ ); assertTrue( "cascade save via component", foo.getComponent().getGlarch()!=null); foo.getComponent().getSubcomponent().setName("baz"); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); + foo.setComponent(null); + s = openSession(); + txn = s.beginTransaction(); s.load( foo, foo.getKey() ); assertTrue( "update components", @@ -3652,18 +3661,17 @@ foo.getComponent().getSubcomponent().getName().equals("baz") ); s.delete(foo); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); foo = new Foo(); s.save(foo); foo.setCustom( new String[] { "one", "two" } ); assertTrue( s.find("from Foo foo where foo.custom.s1 = 'one'").get(0)==foo ); s.delete(foo); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } @@ -4093,14 +4101,17 @@ public void testAutoFlush() throws Exception { Session s = openSession(); + Transaction txn = s.beginTransaction(); FooProxy foo = new Foo(); s.save(foo); assertTrue( "autoflush create", s.find("from Foo foo").size()==1 ); foo.setChar( new Character('X') ); assertTrue( "autoflush update", s.find("from Foo foo where foo.char='X'").size()==1 ); - s.connection().commit(); + txn.commit(); s.close(); + s = openSession(); + txn = s.beginTransaction(); foo = (FooProxy) s.load( Foo.class, foo.getKey() ); //s.update( new Foo(), foo.getKey() ); //assertTrue( s.find("from Foo foo where not foo.char='X'").size()==1, "autoflush update" ); @@ -4112,7 +4123,7 @@ } s.delete(foo); assertTrue( "autoflush delete", s.find("from Foo foo").size()==0 ); - s.connection().commit(); + txn.commit(); s.close(); } @@ -4257,6 +4268,7 @@ public void testComplicatedQuery() throws Exception { Session s = openSession(); + Transaction txn = s.beginTransaction(); Foo foo = new Foo(); Serializable id = s.save(foo); assertTrue(id!=null); @@ -4270,8 +4282,7 @@ s.iterate("from Foo foo where foo.dependent.qux.foo.string = 'foo2'").hasNext() ); s.delete(foo); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } @@ -4601,6 +4612,7 @@ public void testPSCache() throws Exception { Session s = openSession(); + Transaction txn = s.beginTransaction(); for ( int i=0; i<10; i++ ) s.save( new Foo() ); Query q = s.createQuery("from Foo"); q.setMaxResults(2); @@ -4614,15 +4626,17 @@ assertTrue( q.list().size()==3 ); q = s.createQuery("from Foo"); assertTrue( q.list().size()==10 ); - s.connection().commit(); + txn.commit(); s.close(); + s = openSession(); + txn = s.beginTransaction(); q = s.createQuery("from Foo"); assertTrue( q.list().size()==10 ); q.setMaxResults(5); assertTrue( q.list().size()==5 ); s.delete("from Foo"); - s.connection().commit(); + txn.commit(); s.close(); } Index: FumTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/legacy/FumTest.java,v retrieving revision 1.13 retrieving revision 1.14 diff -u -d -r1.13 -r1.14 --- FumTest.java 21 Dec 2005 13:22:50 -0000 1.13 +++ FumTest.java 8 Feb 2006 22:25:37 -0000 1.14 @@ -90,6 +90,7 @@ public void testCriteria() throws Exception { Session s = openSession(); + Transaction txn = s.beginTransaction(); Fum fum = new Fum( fumKey("fum") ); fum.setFo( new Fum( fumKey("fo") ) ); fum.setFum("fo fee fi"); @@ -155,11 +156,11 @@ .add( Expression.eqProperty("fr.id.short", "id.short") ) .list(); assertTrue( list.size()==1 && list.get(0)==fum ); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); base = s.createCriteria(Fum.class) .add( Expression.like("fum", "f%") ); base.createCriteria("fo") @@ -172,8 +173,7 @@ s.delete( fum.getFo() ); Iterator iter = fum.getFriends().iterator(); while ( iter.hasNext() ) s.delete( iter.next() ); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } @@ -246,6 +246,7 @@ public void testListIdentifiers() throws Exception { Session s = openSession(); + Transaction txn = s.beginTransaction(); Fum fum = new Fum( fumKey("fum") ); fum.setFum("fo fee fi"); s.save(fum); @@ -264,8 +265,7 @@ s.delete( s.load(Fum.class, (Serializable) list.get(0) ) ); s.delete( s.load(Fum.class, (Serializable) list.get(1) ) ); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } @@ -303,15 +303,16 @@ public void testCompositeID() throws Exception { Session s = openSession(); + Transaction txn = s.beginTransaction(); Fum fum = new Fum( fumKey("fum") ); fum.setFum("fee fi fo"); s.save(fum); assertTrue( "load by composite key", fum==s.load( Fum.class, fumKey("fum") ) ); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); fum = (Fum) s.load( Fum.class, fumKey("fum"), LockMode.UPGRADE ); assertTrue( "load by composite key", fum!=null ); @@ -328,11 +329,11 @@ s.find("select fum from Fum fum where fum.fum='fee fi fo'").get(0)==fum ); fum.setFo(null); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); s = openSession(); + txn = s.beginTransaction(); Iterator iter = s.iterate("from Fum fum where not fum.fum='FRIEND'"); int i = 0; while ( iter.hasNext() ) { @@ -342,28 +343,28 @@ i++; } assertTrue( "iterate on composite key", i==2 ); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } public void testCompositeIDOneToOne() throws Exception { Session s = openSession(); + Transaction txn = s.beginTransaction(); Fum fum = new Fum( fumKey("fum") ); fum.setFum("fee fi fo"); //s.save(fum); Fumm fumm = new Fumm(); fumm.setFum(fum); s.save(fumm); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); + s = openSession(); + txn = s.beginTransaction(); fumm = (Fumm) s.load( Fumm.class, fumKey("fum") ); //s.delete( fumm.getFum() ); s.delete(fumm); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } Index: MasterDetailTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/legacy/MasterDetailTest.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -d -r1.15 -r1.16 --- MasterDetailTest.java 21 Dec 2005 13:22:50 -0000 1.15 +++ MasterDetailTest.java 8 Feb 2006 22:25:37 -0000 1.16 @@ -675,8 +675,8 @@ } public void testMultiLevelCascade() throws Exception { - Session s = openSession(); + Transaction txn = s.beginTransaction(); Detail detail = new Detail(); SubDetail subdetail = new SubDetail(); Master m = new Master(); @@ -688,18 +688,18 @@ detail.setSubDetails( new HashSet() ); detail.getSubDetails().add(subdetail); Serializable mid = s.save(m); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); + s = openSession(); + txn = s.beginTransaction(); m = (Master) s.load( Master.class, mid ); assertTrue( ( (Detail) m.getMoreDetails().iterator().next() ).getSubDetails().size()!=0 ); s.delete(m); assertTrue( s.find("from SubDetail").size()==0 ); assertTrue( s.find("from Detail d").size()==0 ); s.delete( s.load(Master.class, m0id) ); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } @@ -1116,6 +1116,7 @@ public void testPolymorphicCriteria() throws Exception { Session s = openSession(); + Transaction txn = s.beginTransaction(); Category f = new Category(); Single b = new Single(); b.setId("asdfa"); @@ -1127,8 +1128,7 @@ assertTrue( list.contains(f) && list.contains(b) ); s.delete(f); s.delete(b); - s.flush(); - s.connection().commit(); + txn.commit(); s.close(); } Index: SQLLoaderTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/legacy/SQLLoaderTest.java,v retrieving revision 1.23 retrieving revision 1.24 diff -u -d -r1.23 -r1.24 --- SQLLoaderTest.java 11 Jan 2006 18:50:33 -0000 1.23 +++ SQLLoaderTest.java 8 Feb 2006 22:25:37 -0000 1.24 @@ -12,6 +12,7 @@ import org.hibernate.HibernateException; import org.hibernate.Query; +import org.hibernate.Transaction; import org.hibernate.classic.Session; import org.hibernate.dialect.HSQLDialect; import org.hibernate.dialect.MySQLDialect; @@ -33,6 +34,7 @@ public void testTS() throws Exception { if (getDialect() instanceof Oracle9Dialect) return; Session session = openSession(); + Transaction txn = session.beginTransaction(); Simple sim = new Simple(); sim.setDate( new Date() ); session.save( sim, new Long(1) ); @@ -40,8 +42,7 @@ q.setTimestamp( 0, sim.getDate() ); assertTrue ( q.list().size()==1 ); session.delete(sim); - session.flush(); - session.connection().commit(); + txn.commit(); session.close(); } @@ -600,8 +601,8 @@ } - /** @issue HHH-21 */ public void testCompositeIdId() throws HibernateException, SQLException { + // issue HHH-21 Session s = openSession(); CompositeIdId id = new CompositeIdId(); |
From: <ste...@us...> - 2006-02-08 18:49:34
|
Update of /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/hql In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17923/test/org/hibernate/test/hql Modified Files: ASTParserLoadingTest.java Log Message: HHH-1464 : Query.getReturnTypes() / getReturnAliases() Index: ASTParserLoadingTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java,v retrieving revision 1.51 retrieving revision 1.52 diff -u -d -r1.51 -r1.52 --- ASTParserLoadingTest.java 27 Jan 2006 23:40:31 -0000 1.51 +++ ASTParserLoadingTest.java 8 Feb 2006 18:49:26 -0000 1.52 @@ -67,6 +67,16 @@ }; } + public void testQueryMetadataRetrievalWithFetching() { + // HHH-1464 : there was a problem due to the fact they we polled + // the shallow version of the query plan to get the metadata. + Session s = openSession(); + Query query = s.createQuery( "from Animal a inner join fetch a.mother" ); + assertEquals( 1, query.getReturnTypes().length ); + assertNull( query.getReturnAliases() ); + s.close(); + } + public void testSuperclassPropertyReferenceAfterCollectionIndexedAccess() { // note: simply performing syntax checking in the db // test for HHH-429 |
From: <ste...@us...> - 2006-02-08 18:49:19
|
Update of /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/hql In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17856/test/org/hibernate/test/hql Modified Files: Tag: Branch_3_1 ASTParserLoadingTest.java Log Message: HHH-1464 : Query.getReturnTypes() / getReturnAliases() Index: ASTParserLoadingTest.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/test/org/hibernate/test/hql/ASTParserLoadingTest.java,v retrieving revision 1.51 retrieving revision 1.51.2.1 diff -u -d -r1.51 -r1.51.2.1 --- ASTParserLoadingTest.java 27 Jan 2006 23:40:31 -0000 1.51 +++ ASTParserLoadingTest.java 8 Feb 2006 18:49:11 -0000 1.51.2.1 @@ -67,6 +67,16 @@ }; } + public void testQueryMetadataRetrievalWithFetching() { + // HHH-1464 : there was a problem due to the fact they we polled + // the shallow version of the query plan to get the metadata. + Session s = openSession(); + Query query = s.createQuery( "from Animal a inner join fetch a.mother" ); + assertEquals( 1, query.getReturnTypes().length ); + assertNull( query.getReturnAliases() ); + s.close(); + } + public void testSuperclassPropertyReferenceAfterCollectionIndexedAccess() { // note: simply performing syntax checking in the db // test for HHH-429 |
From: <ste...@us...> - 2006-02-08 18:48:28
|
Update of /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17513/src/org/hibernate/impl Modified Files: SessionFactoryImpl.java Log Message: HHH-1464 : Query.getReturnTypes() / getReturnAliases() Index: SessionFactoryImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl/SessionFactoryImpl.java,v retrieving revision 1.105 retrieving revision 1.106 diff -u -d -r1.105 -r1.106 --- SessionFactoryImpl.java 7 Feb 2006 20:42:41 -0000 1.105 +++ SessionFactoryImpl.java 8 Feb 2006 18:48:21 -0000 1.106 @@ -617,11 +617,11 @@ } public Type[] getReturnTypes(String queryString) throws HibernateException { - return queryPlanCache.getHQLQueryPlan( queryString, true, CollectionHelper.EMPTY_MAP ).getReturnMetadata().getReturnTypes(); + return queryPlanCache.getHQLQueryPlan( queryString, false, CollectionHelper.EMPTY_MAP ).getReturnMetadata().getReturnTypes(); } public String[] getReturnAliases(String queryString) throws HibernateException { - return queryPlanCache.getHQLQueryPlan( queryString, true, CollectionHelper.EMPTY_MAP ).getReturnMetadata().getReturnAliases(); + return queryPlanCache.getHQLQueryPlan( queryString, false, CollectionHelper.EMPTY_MAP ).getReturnMetadata().getReturnAliases(); } public ClassMetadata getClassMetadata(Class persistentClass) throws HibernateException { |
From: <ste...@us...> - 2006-02-08 18:47:15
|
Update of /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv16978/src/org/hibernate/impl Modified Files: Tag: Branch_3_1 SessionFactoryImpl.java Log Message: HHH-1464 : Query.getReturnTypes() / getReturnAliases() Index: SessionFactoryImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl/SessionFactoryImpl.java,v retrieving revision 1.104 retrieving revision 1.104.2.1 diff -u -d -r1.104 -r1.104.2.1 --- SessionFactoryImpl.java 1 Feb 2006 19:58:27 -0000 1.104 +++ SessionFactoryImpl.java 8 Feb 2006 18:47:07 -0000 1.104.2.1 @@ -616,11 +616,11 @@ } public Type[] getReturnTypes(String queryString) throws HibernateException { - return queryPlanCache.getHQLQueryPlan( queryString, true, CollectionHelper.EMPTY_MAP ).getReturnMetadata().getReturnTypes(); + return queryPlanCache.getHQLQueryPlan( queryString, false, CollectionHelper.EMPTY_MAP ).getReturnMetadata().getReturnTypes(); } public String[] getReturnAliases(String queryString) throws HibernateException { - return queryPlanCache.getHQLQueryPlan( queryString, true, CollectionHelper.EMPTY_MAP ).getReturnMetadata().getReturnAliases(); + return queryPlanCache.getHQLQueryPlan( queryString, false, CollectionHelper.EMPTY_MAP ).getReturnMetadata().getReturnAliases(); } public ClassMetadata getClassMetadata(Class persistentClass) throws HibernateException { |
From: <ste...@us...> - 2006-02-08 18:36:55
|
Update of /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv12442/src/org/hibernate/impl Modified Files: SessionImpl.java Log Message: HHH-1410: no auto-flush outside transactions Index: SessionImpl.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl/SessionImpl.java,v retrieving revision 1.178 retrieving revision 1.179 diff -u -d -r1.178 -r1.179 --- SessionImpl.java 1 Feb 2006 19:58:27 -0000 1.178 +++ SessionImpl.java 8 Feb 2006 18:36:45 -0000 1.179 @@ -943,11 +943,10 @@ */ protected boolean autoFlushIfRequired(Set querySpaces) throws HibernateException { errorIfClosed(); -// for 3.2 -// if ( ! isTransactionInProgress() ) { -// // do not auto-flush while outside a transaction -// return false; -// } + if ( ! isTransactionInProgress() ) { + // do not auto-flush while outside a transaction + return false; + } AutoFlushEvent event = new AutoFlushEvent(querySpaces, this); AutoFlushEventListener[] autoFlushEventListener = listeners.getAutoFlushEventListeners(); for ( int i = 0; i < autoFlushEventListener.length; i++ ) { |
From: Steve E. <ste...@jb...> - 2006-02-08 14:56:01
|
Did you want this in 3.1.3 also? -----Original Message----- From: hib...@li... [mailto:hib...@li...] On Behalf Of tu...@us... Sent: Tuesday, February 07, 2006 2:43 PM To: hib...@li... Subject: [Hibernate-commits] Hibernate3/src/org/hibernate/impl SessionFactoryImpl.java,1.104,1.105 Update of /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv813/src/org/hibernate/impl Modified Files: SessionFactoryImpl.java=20 Log Message: Added "managed" option for current_session_context_class Index: SessionFactoryImpl.java =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D RCS file: /cvsroot/hibernate/Hibernate3/src/org/hibernate/impl/SessionFactoryImpl. java,v retrieving revision 1.104 retrieving revision 1.105 diff -u -d -r1.104 -r1.105 --- SessionFactoryImpl.java 1 Feb 2006 19:58:27 -0000 1.104 +++ SessionFactoryImpl.java 7 Feb 2006 20:42:41 -0000 1.105 @@ -36,6 +36,7 @@ import org.hibernate.context.CurrentSessionContext; import org.hibernate.context.ThreadLocalSessionContext; import org.hibernate.context.JTASessionContext; +import org.hibernate.context.ManagedSessionContext; import org.hibernate.cache.Cache; import org.hibernate.cache.CacheConcurrencyStrategy; import org.hibernate.cache.CacheFactory; @@ -945,6 +946,9 @@ else if ( "thread".equals( impl ) ) { return new ThreadLocalSessionContext( this ); } + else if ( "managed".equals( impl ) ) { + return new ManagedSessionContext( this ); + } else { try { Class implClass =3D ReflectHelper.classForName( impl ); ------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Do you grep through log files for problems? Stop! Download the new AJAX search engine that makes searching your log files as easy as surfing the web. DOWNLOAD SPLUNK! http://sel.as-us.falkag.net/sel?cmd=3Dlnk&kid=3D103432&bid=3D230486&dat=3D= 121642 _______________________________________________ hibernate-commits mailing list hib...@li... https://lists.sourceforge.net/lists/listinfo/hibernate-commits |
From: <max...@us...> - 2006-02-08 11:57:02
|
Update of /cvsroot/hibernate/HibernateExt/tools/src/java/org/hibernate/cfg/reveng In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv6938/src/java/org/hibernate/cfg/reveng Modified Files: JDBCReader.java Log Message: HBX-582 Correct logger for JDBCReader Index: JDBCReader.java =================================================================== RCS file: /cvsroot/hibernate/HibernateExt/tools/src/java/org/hibernate/cfg/reveng/JDBCReader.java,v retrieving revision 1.29 retrieving revision 1.30 diff -u -d -r1.29 -r1.30 --- JDBCReader.java 8 Jan 2006 15:08:01 -0000 1.29 +++ JDBCReader.java 8 Feb 2006 11:56:35 -0000 1.30 @@ -31,7 +31,7 @@ public class JDBCReader { - private static final Log log = LogFactory.getLog(JDBCBinder.class); + private static final Log log = LogFactory.getLog(JDBCReader.class); private final ReverseEngineeringStrategy revengStrategy; |
From: <max...@us...> - 2006-02-08 08:02:11
|
Update of /cvsroot/hibernate/HibernateExt/org.hibernate.eclipse.console.test/lib In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15969/lib Added Files: jaxen-1.1-beta-7.jar hibernate-tools-tests.jar hsqldb.jar Log Message: integrate unit tests into eclipse test run --- NEW FILE: jaxen-1.1-beta-7.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: hibernate-tools-tests.jar --- (This appears to be a binary file; contents omitted.) --- NEW FILE: hsqldb.jar --- (This appears to be a binary file; contents omitted.) |
From: <max...@us...> - 2006-02-08 08:02:11
|
Update of /cvsroot/hibernate/HibernateExt/org.hibernate.eclipse.console.test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15969 Modified Files: .classpath build.properties Log Message: integrate unit tests into eclipse test run Index: .classpath =================================================================== RCS file: /cvsroot/hibernate/HibernateExt/org.hibernate.eclipse.console.test/.classpath,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- .classpath 26 Aug 2005 06:58:36 -0000 1.2 +++ .classpath 8 Feb 2006 08:02:03 -0000 1.3 @@ -1,6 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" path="src"/> + <classpathentry exported="true" kind="lib" path="lib/hibernate-tools-tests.jar"/> + <classpathentry exported="true" kind="lib" path="lib/hsqldb.jar"/> + <classpathentry exported="true" kind="lib" path="lib/jaxen-1.1-beta-7.jar"/> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/> <classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/> <classpathentry kind="output" path="build/eclipse"/> Index: build.properties =================================================================== RCS file: /cvsroot/hibernate/HibernateExt/org.hibernate.eclipse.console.test/build.properties,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- build.properties 24 Jan 2006 14:48:59 -0000 1.3 +++ build.properties 8 Feb 2006 08:02:03 -0000 1.4 @@ -2,4 +2,5 @@ output.org.hibernate.eclipse.console.test.test/ = build/eclipse/ bin.includes = plugin.xml,\ org.hibernate.eclipse.console.test.test/,\ - META-INF/ + META-INF/,\ + lib/hibernate-tools-tests.jar |
From: <max...@us...> - 2006-02-08 08:02:11
|
Update of /cvsroot/hibernate/HibernateExt/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv15969/src/org/hibernate/eclipse/console/test Modified Files: ConsolePluginAllTests.java KnownConfigurationsTest.java ConsoleConfigurationTest.java Added Files: plugintest-hibernate.properties Log Message: integrate unit tests into eclipse test run --- NEW FILE: plugintest-hibernate.properties --- ###################### ### Query Language ### ###################### ## define query language constants / function names hibernate.query.substitutions true 1, false 0, yes 'Y', no 'N' ## HypersonicSQL hibernate.dialect org.hibernate.dialect.HSQLDialect hibernate.connection.driver_class org.hsqldb.jdbcDriver hibernate.connection.username sa hibernate.connection.password hibernate.default_schema PUBLIC #hibernate.default_catalog #hibernate.connection.url jdbc:hsqldb:hsql://localhost #hibernate.connection.url jdbc:hsqldb:test hibernate.connection.url jdbc:hsqldb:. ## MySQL #hibernate.dialect org.hibernate.dialect.MySQLDialect #hibernate.connection.driver_class org.gjt.mm.mysql.Driver #hibernate.connection.driver_class com.mysql.jdbc.Driver #hibernate.connection.url jdbc:mysql:///test #hibernate.connection.username gavin #hibernate.connection.password ## Oracle #hibernate.dialect org.hibernate.dialect.OracleDialect #hibernate.dialect org.hibernate.dialect.Oracle9Dialect #hibernate.connection.driver_class oracle.jdbc.driver.OracleDriver #hibernate.connection.driver_class com.ddtek.jdbc.oracle.OracleDriver #hibernate.connection.username max #hibernate.connection.password pluto123 #hibernate.default_schema MAX #hibernate.connection.url jdbc:datadirect:oracle://localhost:1521;SID=orcl;CatalogOptions=0 #hibernate.connection.url jdbc:oracle:thin:@localhost:1522:xe #remarksReporting is necessary for Oracle to report REMARKS for column and table. Greatly reduces the speed of reverse engineering! #hibernate.connection.remarksReporting=true ## PostgreSQL #hibernate.dialect org.hibernate.dialect.PostgreSQLDialect #hibernate.connection.driver_class org.postgresql.Driver #hibernate.connection.url jdbc:postgresql:template1 #hibernate.connection.username pg #hibernate.connection.password #hibernate.query.substitutions yes 'Y', no 'N' ## DB2 #hibernate.dialect org.hibernate.dialect.DB2Dialect #hibernate.connection.driver_class COM.ibm.db2.jdbc.app.DB2Driver #hibernate.connection.url jdbc:db2:test #hibernate.connection.username db2 #hibernate.connection.password db2 ## DB2/400 #hibernate.dialect org.hibernate.dialect.DB2400Dialect #hibernate.connection.username user #hibernate.connection.password password ## Native driver #hibernate.connection.driver_class COM.ibm.db2.jdbc.app.DB2Driver #hibernate.connection.url jdbc:db2://systemname ## Toolbox driver #hibernate.connection.driver_class com.ibm.as400.access.AS400JDBCDriver #hibernate.connection.url jdbc:as400://systemname ## Sybase #hibernate.dialect org.hibernate.dialect.SybaseDialect #hibernate.connection.driver_class com.sybase.jdbc2.jdbc.SybDriver #hibernate.connection.username sa #hibernate.connection.password sasasa #hibernate.connection.url jdbc:sybase:Tds:co3061835-a:5000/tempdb ## Mckoi SQL #hibernate.dialect org.hibernate.dialect.MckoiDialect #hibernate.connection.driver_class com.mckoi.JDBCDriver #hibernate.connection.url jdbc:mckoi:/// #hibernate.connection.url jdbc:mckoi:local://C:/mckoi1.00/db.conf #hibernate.connection.username admin #hibernate.connection.password nimda ## SAP DB #hibernate.dialect org.hibernate.dialect.SAPDBDialect #hibernate.connection.driver_class com.sap.dbtech.jdbc.DriverSapDB #hibernate.connection.url jdbc:sapdb://localhost/TST #hibernate.connection.username TEST #hibernate.connection.password TEST #hibernate.query.substitutions yes 'Y', no 'N' ## MS SQL Server #hibernate.dialect org.hibernate.dialect.SQLServerDialect #hibernate.connection.username sa #hibernate.connection.password sa ## JSQL Driver #hibernate.connection.driver_class com.jnetdirect.jsql.JSQLDriver #hibernate.connection.url jdbc:JSQLConnect://1E1/test ## JTURBO Driver #hibernate.connection.driver_class com.newatlanta.jturbo.driver.Driver #hibernate.connection.url jdbc:JTurbo://1E1:1433/test ## WebLogic Driver #hibernate.connection.driver_class weblogic.jdbc.mssqlserver4.Driver #hibernate.connection.url jdbc:weblogic:mssqlserver4:1E1:1433 ## Microsoft Driver (not recommended!) #hibernate.connection.driver_class com.microsoft.jdbc.sqlserver.SQLServerDriver #hibernate.connection.url jdbc:microsoft:sqlserver://1E1;DatabaseName=test;SelectMethod=cursor ## jTDS (since version 0.9) #hibernate.connection.driver_class net.sourceforge.jtds.jdbc.Driver #hibernate.connection.url jdbc:jtds:sqlserver://1E1/test ## Interbase #hibernate.dialect org.hibernate.dialect.InterbaseDialect #hibernate.connection.username sysdba #hibernate.connection.password masterkey ## DO NOT specify hibernate.connection.sqlDialect ## InterClient #hibernate.connection.driver_class interbase.interclient.Driver #hibernate.connection.url jdbc:interbase://localhost:3060/C:/firebird/test.gdb ## Pure Java #hibernate.connection.driver_class org.firebirdsql.jdbc.FBDriver #hibernate.connection.url jdbc:firebirdsql:localhost/3050:/firebird/test.gdb ## Pointbase #hibernate.dialect org.hibernate.dialect.PointbaseDialect #hibernate.connection.driver_class com.pointbase.jdbc.jdbcUniversalDriver #hibernate.connection.url jdbc:pointbase:embedded:sample #hibernate.connection.username PBPUBLIC #hibernate.connection.password PBPUBLIC ################################# ### Hibernate Connection Pool ### ################################# hibernate.connection.pool_size 1 ########################### ### C3P0 Connection Pool### ########################### #hibernate.c3p0.max_size 2 #hibernate.c3p0.min_size 2 #hibernate.c3p0.timeout 5000 #hibernate.c3p0.max_statements 0 #hibernate.c3p0.idle_test_period 3000 #hibernate.c3p0.acquire_increment 2 #hibernate.c3p0.validate false ############################## ### Proxool Connection Pool### ############################## ## Properties for external configuration of Proxool hibernate.proxool.pool_alias pool1 ## Only need one of the following #hibernate.proxool.existing_pool true #hibernate.proxool.xml proxool.xml #hibernate.proxool.properties proxool.properties ################################# ### Plugin ConnectionProvider ### ################################# ## use a custom ConnectionProvider (if not set, Hibernate will choose a built-in ConnectionProvider using hueristics) #hibernate.connection.provider_class org.hibernate.connection.DriverManagerConnectionProvider #hibernate.connection.provider_class org.hibernate.connection.DatasourceConnectionProvider #hibernate.connection.provider_class org.hibernate.connection.C3P0ConnectionProvider #hibernate.connection.provider_class org.hibernate.connection.DBCPConnectionProvider #hibernate.connection.provider_class org.hibernate.connection.ProxoolConnectionProvider ####################### ### Transaction API ### ####################### ## Enable automatic flush during the JTA beforeCompletion() callback ## (This setting is relevant with or without the Transaction API) #hibernate.transaction.flush_before_completion ## Enable automatic session close at the end of transaction ## (This setting is relevant with or without the Transaction API) #hibernate.transaction.auto_close_session ## the Transaction API abstracts application code from the underlying JTA or JDBC transactions #hibernate.transaction.factory_class org.hibernate.transaction.JTATransactionFactory #hibernate.transaction.factory_class org.hibernate.transaction.JDBCTransactionFactory ## to use JTATransactionFactory, Hibernate must be able to locate the UserTransaction in JNDI ## default is java:comp/UserTransaction ## you do NOT need this setting if you specify hibernate.transaction.manager_lookup_class #jta.UserTransaction jta/usertransaction #jta.UserTransaction javax.transaction.UserTransaction #jta.UserTransaction UserTransaction ## to use the second-level cache with JTA, Hibernate must be able to obtain the JTA TransactionManager #hibernate.transaction.manager_lookup_class org.hibernate.transaction.JBossTransactionManagerLookup #hibernate.transaction.manager_lookup_class org.hibernate.transaction.WeblogicTransactionManagerLookup #hibernate.transaction.manager_lookup_class org.hibernate.transaction.WebSphereTransactionManagerLookup #hibernate.transaction.manager_lookup_class org.hibernate.transaction.OrionTransactionManagerLookup #hibernate.transaction.manager_lookup_class org.hibernate.transaction.ResinTransactionManagerLookup ############################## ### Miscellaneous Settings ### ############################## ## print all generated SQL to the console #hibernate.show_sql true ## add comments to the generated SQL #hibernate.use_sql_comments true ## generate statistics #hibernate.generate_statistics true ## auto schema export #hibernate.hbm2ddl.auto create-drop #hibernate.hbm2ddl.auto create #hibernate.hbm2ddl.auto update ## rollback generated identifier values of deleted entities to default values #hibernate.use_identifer_rollback true ## specify a default schema and catalog for unqualified tablenames #hibernate.default_schema SCOTT #hibernate.default_catalog ## set the maximum depth of the outer join fetch tree hibernate.max_fetch_depth 1 ## enable CGLIB reflection optimizer (enabled by default) #hibernate.cglib.use_reflection_optimizer false ## use a custom stylesheet for XML generation (if not specified, hibernate-default.xslt will be used) #hibernate.xml.output_stylesheet C:/Hibernate/net/sf/hibernate/hibernate-default.xslt ##################### ### JDBC Settings ### ##################### ## specify a JDBC isolation level #hibernate.connection.isolation 4 ## enable JDBC autocommit (not recommended!) #hibernate.connection.autocommit true ## set the JDBC fetch size #hibernate.jdbc.fetch_size 25 ## set the maximum JDBC 2 batch size (a nonzero value enables batching) #hibernate.jdbc.batch_size 5 ## enable batch updates even for versioned data hibernate.jdbc.batch_versioned_data true ## enable use of JDBC 2 scrollable ResultSets (specifying a Dialect will cause Hibernate to use a sensible default) #hibernate.jdbc.use_scrollable_resultset true ## use streams when writing binary types to / from JDBC hibernate.jdbc.use_streams_for_binary true ## use JDBC 3 PreparedStatement.getGeneratedKeys() to get the identifier of an inserted row #hibernate.jdbc.use_get_generated_keys false ########################## ### Second-level Cache ### ########################## ## optimize chache for minimal "puts" instead of minimal "gets" (good for clustered cache) #hibernate.cache.use_minimal_puts true ## set a prefix for cache region names hibernate.cache.region_prefix hibernate.test ## disable the second-level cache #hibernate.cache.use_second_level_cache false ## enable the query cache #hibernate.cache.use_query_cache true ## choose a cache implementation #hibernate.cache.provider_class org.hibernate.cache.EhCacheProvider #hibernate.cache.provider_class org.hibernate.cache.EmptyCacheProvider hibernate.cache.provider_class org.hibernate.cache.HashtableCacheProvider #hibernate.cache.provider_class org.hibernate.cache.TreeCacheProvider #hibernate.cache.provider_class org.hibernate.cache.OSCacheProvider #hibernate.cache.provider_class org.hibernate.cache.SwarmCacheProvider ############ ### JNDI ### ############ ## specify a JNDI name for the SessionFactory #hibernate.session_factory_name hibernate/session_factory ## Hibernate uses JNDI to bind a name to a SessionFactory and to look up the JTA UserTransaction; ## if hibernate.jndi.* are not specified, Hibernate will use the default InitialContext() which ## is the best approach in an application server #file system #hibernate.jndi.class com.sun.jndi.fscontext.RefFSContextFactory #hibernate.jndi.url file:/ #WebSphere #hibernate.jndi.class com.ibm.websphere.naming.WsnInitialContextFactory #hibernate.jndi.url iiop://localhost:900/ Index: ConsolePluginAllTests.java =================================================================== RCS file: /cvsroot/hibernate/HibernateExt/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/ConsolePluginAllTests.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- ConsolePluginAllTests.java 25 Jan 2006 10:09:54 -0000 1.2 +++ ConsolePluginAllTests.java 8 Feb 2006 08:02:02 -0000 1.3 @@ -1,11 +1,16 @@ package org.hibernate.eclipse.console.test; +import java.io.IOException; +import java.util.Properties; + +import org.hibernate.tool.ToolAllTests; + import junit.framework.Test; import junit.framework.TestSuite; public class ConsolePluginAllTests { - public static Test suite() { + public static Test suite() throws IOException { TestSuite suite = new TestSuite( "Test for org.hibernate.eclipse.console.test" ); //$JUnit-BEGIN$ @@ -16,6 +21,17 @@ suite.addTestSuite( ConsoleConfigurationTest.class ); suite.addTestSuite( JavaFormattingTest.class ); suite.addTestSuite( HibernateProjectTests.class ); + + // core tests + Properties properties = new Properties(); + properties.load(ConsolePluginAllTests.class.getResourceAsStream("plugintest-hibernate.properties")); + + System.getProperties().putAll(properties); + + suite.addTest(org.hibernate.tool.hbm2x.hbm2hbmxml.Cfg2HbmAllTests.suite() ); + suite.addTest(org.hibernate.tool.test.jdbc2cfg.Jdbc2CfgAllTests.suite() ); + suite.addTest(org.hibernate.tool.hbm2x.Hbm2XAllTests.suite() ); + //$JUnit-END$ return suite; } Index: KnownConfigurationsTest.java =================================================================== RCS file: /cvsroot/hibernate/HibernateExt/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/KnownConfigurationsTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- KnownConfigurationsTest.java 24 Jan 2006 14:48:59 -0000 1.1 +++ KnownConfigurationsTest.java 8 Feb 2006 08:02:02 -0000 1.2 @@ -53,6 +53,7 @@ CCListener listener = new CCListener(); + try { knownConfigurations.addConsoleConfigurationListener(listener); assertEquals(0, listener.added.size()); @@ -133,7 +134,9 @@ configurations = knownConfigurations.getConfigurations(); assertEquals(0,configurations.length); assertEquals(listener.added.size(), 0); - + } finally { + KnownConfigurations.getInstance().removeConfigurationListener(listener); + } } } Index: ConsoleConfigurationTest.java =================================================================== RCS file: /cvsroot/hibernate/HibernateExt/org.hibernate.eclipse.console.test/src/org/hibernate/eclipse/console/test/ConsoleConfigurationTest.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -r1.1 -r1.2 --- ConsoleConfigurationTest.java 24 Jan 2006 14:48:59 -0000 1.1 +++ ConsoleConfigurationTest.java 8 Feb 2006 08:02:02 -0000 1.2 @@ -112,6 +112,7 @@ public void testBuildConfiguration() { MockCCListener listener = new MockCCListener(); + assertTrue(consoleCfg.getConsoleConfigurationListeners().length==1); consoleCfg.addConsoleConfigurationListener(listener); consoleCfg.build(); |