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
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister
In directory sc8-pr-cvs1:/tmp/cvs-serv9385/sf/hibernate/persister
Modified Files:
AbstractEntityPersister.java EntityPersister.java
Loadable.java NormalizedEntityPersister.java
Log Message:
fixed bug in generated SQL for loading <joined-subclass>es
Index: AbstractEntityPersister.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/AbstractEntityPersister.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** AbstractEntityPersister.java 20 Jan 2003 12:48:14 -0000 1.5
--- AbstractEntityPersister.java 24 Jan 2003 13:07:17 -0000 1.6
***************
*** 124,128 ****
}
! public String identifierSelectClauseFragment(String name, String suffix) {
return new SelectFragment()
.setSuffix(suffix)
--- 124,128 ----
}
! public String identifierSelectFragment(String name, String suffix) {
return new SelectFragment()
.setSuffix(suffix)
Index: EntityPersister.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/EntityPersister.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** EntityPersister.java 24 Jan 2003 10:21:35 -0000 1.8
--- EntityPersister.java 24 Jan 2003 13:07:17 -0000 1.9
***************
*** 776,780 ****
}
! public String fromClauseFragment(String name, boolean innerJoin, boolean includeSubclasses) {
return getTableName() + ' ' + name;
}
--- 776,780 ----
}
! public String fromTableFragment(String name) {
return getTableName() + ' ' + name;
}
***************
*** 820,824 ****
}
! public String propertySelectClauseFragment(String name, String suffix) {
SelectFragment frag = new SelectFragment()
--- 820,824 ----
}
! public String propertySelectFragment(String name, String suffix) {
SelectFragment frag = new SelectFragment()
***************
*** 833,841 ****
}
! public String fromJoinFragment(String alias, boolean innerJoin) {
return StringHelper.EMPTY_STRING;
}
! public String whereJoinFragment(String alias, boolean innerJoin) {
return StringHelper.EMPTY_STRING;
}
--- 833,841 ----
}
! public String fromJoinFragment(String alias, boolean innerJoin, boolean includeSubclasses) {
return StringHelper.EMPTY_STRING;
}
! public String whereJoinFragment(String alias, boolean innerJoin, boolean includeSubclasses) {
return StringHelper.EMPTY_STRING;
}
Index: Loadable.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/Loadable.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** Loadable.java 24 Jan 2003 10:21:36 -0000 1.5
--- Loadable.java 24 Jan 2003 13:07:17 -0000 1.6
***************
*** 89,96 ****
/**
* Given a query alias and an identifying suffix, render the
* intentifier select fragment
*/
! public String identifierSelectClauseFragment(String name, String suffix);
/**
* Given a query alias and an identifying suffix, render the
--- 89,102 ----
/**
+ * Get the table alias for the particular subclass state
+ * (optional operation)
+ */
+ public String getConcreteClassAlias(String alias);
+
+ /**
* Given a query alias and an identifying suffix, render the
* intentifier select fragment
*/
! public String identifierSelectFragment(String name, String suffix);
/**
* Given a query alias and an identifying suffix, render the
***************
*** 98,116 ****
* (optional operation)
*/
! public String propertySelectClauseFragment(String alias, String suffix);
/**
! * Get the from clause fragment, given a query alias
* (optional operation)
*/
! public String fromClauseFragment(String alias, boolean innerJoin, boolean includeSubclasses);
!
/**
! * Get the table alias for the particular subclass state
* (optional operation)
*/
! public String getConcreteClassAlias(String alias);
!
! public String whereJoinFragment(String alias, boolean innerJoin);
! public String fromJoinFragment(String alias, boolean innerJoin);
}
--- 104,123 ----
* (optional operation)
*/
! public String propertySelectFragment(String alias, String suffix);
/**
! * Get the main from table fragment, given a query alias
* (optional operation)
*/
! public String fromTableFragment(String alias);
/**
! * Get the where clause part of any joins
* (optional operation)
*/
! public String whereJoinFragment(String alias, boolean innerJoin, boolean includeSubclasses);
! /**
! * Get the from clause part of any joins
! * (optional operation)
! */
! public String fromJoinFragment(String alias, boolean innerJoin, boolean includeSubclasses);
}
Index: NormalizedEntityPersister.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/NormalizedEntityPersister.java,v
retrieving revision 1.2
retrieving revision 1.3
diff -C2 -d -r1.2 -r1.3
*** NormalizedEntityPersister.java 24 Jan 2003 10:21:36 -0000 1.2
--- NormalizedEntityPersister.java 24 Jan 2003 13:07:17 -0000 1.3
***************
*** 912,922 ****
}
! public String fromClauseFragment(String alias, boolean innerJoin, boolean includeSubclasses) {
! StringBuffer buf = new StringBuffer(100);
! buf.append( subclassTableNameClosure[0] )
! .append(' ')
! .append(alias)
! .append( outerjoin(alias, innerJoin, includeSubclasses).toFromFragmentString() );
! return buf.toString();
}
--- 912,917 ----
}
! public String fromTableFragment(String alias) {
! return subclassTableNameClosure[0] + ' ' + alias;
}
***************
*** 937,946 ****
}
- public String queryWhereFragment(String alias, boolean includeSubclasses) throws MappingException {
- String ojw = outerjoin(alias, true, includeSubclasses).toWhereFragmentString();
- return ( ojw.trim().length()==0 ) ? null : ojw;
-
- }
-
private int getTableId(String tableName, String[] tables) {
for ( int tab=0; tab<tables.length; tab++ ) {
--- 932,935 ----
***************
*** 980,984 ****
}
! public String propertySelectClauseFragment(String alias, String suffix) {
String[] cols = getSubclassColumnClosure();
--- 969,973 ----
}
! public String propertySelectFragment(String alias, String suffix) {
String[] cols = getSubclassColumnClosure();
***************
*** 1023,1032 ****
}
! public String fromJoinFragment(String alias, boolean innerJoin) {
! return outerjoin(alias, innerJoin, true).toFromFragmentString();
}
! public String whereJoinFragment(String alias, boolean innerJoin) {
! return outerjoin(alias, innerJoin, true).toWhereFragmentString();
}
--- 1012,1025 ----
}
! public String fromJoinFragment(String alias, boolean innerJoin, boolean includeSubclasses) {
! return outerjoin(alias, innerJoin, includeSubclasses).toFromFragmentString();
}
! public String whereJoinFragment(String alias, boolean innerJoin, boolean includeSubclasses) {
! return outerjoin(alias, innerJoin, includeSubclasses).toWhereFragmentString();
! }
!
! public String queryWhereFragment(String alias, boolean includeSubclasses) throws MappingException {
! return whereJoinFragment(alias, true, includeSubclasses);
}
|
|
From: <one...@us...> - 2003-01-24 10:22:09
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader
In directory sc8-pr-cvs1:/tmp/cvs-serv28888/sf/hibernate/loader
Modified Files:
OuterJoinLoader.java
Log Message:
fixed a problem with outerjoin fetching from queries with oracle-style syntax
Index: OuterJoinLoader.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader/OuterJoinLoader.java,v
retrieving revision 1.9
retrieving revision 1.10
diff -C2 -d -r1.9 -r1.10
*** OuterJoinLoader.java 20 Jan 2003 12:48:13 -0000 1.9
--- OuterJoinLoader.java 24 Jan 2003 10:21:35 -0000 1.10
***************
*** 242,246 ****
}
! public void setSuffixed(String[] suffixes) {
this.suffixes = suffixes;
}
--- 242,246 ----
}
! public void setSuffixes(String[] suffixes) {
this.suffixes = suffixes;
}
|
|
From: <one...@us...> - 2003-01-24 10:22:09
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/hql
In directory sc8-pr-cvs1:/tmp/cvs-serv28888/sf/hibernate/hql
Modified Files:
QueryTranslator.java
Log Message:
fixed a problem with outerjoin fetching from queries with oracle-style syntax
Index: QueryTranslator.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/hql/QueryTranslator.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** QueryTranslator.java 20 Jan 2003 12:48:10 -0000 1.8
--- QueryTranslator.java 24 Jan 2003 10:21:34 -0000 1.9
***************
*** 452,457 ****
int joins=associations.size();
String[] ojsuffixes = new String[joins];
- ojl.setSuffixed(ojsuffixes);
for ( int i=0; i<joins; i++ ) ojsuffixes[i] = Integer.toString(i) + StringHelper.UNDERSCORE;
selectProperties = persister.propertySelectClauseFragment(name, StringHelper.EMPTY_STRING);
selectIdentifiers = persister.identifierSelectClauseFragment(name, StringHelper.EMPTY_STRING);
--- 452,457 ----
int joins=associations.size();
String[] ojsuffixes = new String[joins];
for ( int i=0; i<joins; i++ ) ojsuffixes[i] = Integer.toString(i) + StringHelper.UNDERSCORE;
+ ojl.setSuffixes(ojsuffixes);
selectProperties = persister.propertySelectClauseFragment(name, StringHelper.EMPTY_STRING);
selectIdentifiers = persister.identifierSelectClauseFragment(name, StringHelper.EMPTY_STRING);
***************
*** 664,668 ****
Iterator iter = typeMap.keySet().iterator();
StringBuffer inClassWheres = new StringBuffer(50);
! boolean first = true;
while ( iter.hasNext() ) {
--- 664,671 ----
Iterator iter = typeMap.keySet().iterator();
StringBuffer inClassWheres = new StringBuffer(50);
!
! // add any outerjoins required for fetching associations
! if (outerjoin!=null) inClassWheres.append( outerjoin.toWhereFragmentString() );
!
while ( iter.hasNext() ) {
***************
*** 672,683 ****
//render the " and foo.class in ( 'Foo', 'Bar' ) " bit
! String where = p.getQueryWhereClause( name, returnTypes.contains(name) && !isShallowQuery() );
! if ( where!=null ) {
! if (!first) inClassWheres.append(" AND ");
! first=false;
! inClassWheres.append(where);
! }
!
}
StringBuffer buf = new StringBuffer(120);
--- 675,685 ----
//render the " and foo.class in ( 'Foo', 'Bar' ) " bit
! String where = p.queryWhereFragment( name, returnTypes.contains(name) && !isShallowQuery() );
! if ( where!=null ) inClassWheres.append(where);
}
+
+ //if ( inClassWheres.toString().toLowerCase().startsWith(" and ") ) {
+ inClassWheres.delete(0, 5); //remove the leading " and "
+ //}
StringBuffer buf = new StringBuffer(120);
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister
In directory sc8-pr-cvs1:/tmp/cvs-serv28888/sf/hibernate/persister
Modified Files:
EntityPersister.java Loadable.java
NormalizedEntityPersister.java Queryable.java
Log Message:
fixed a problem with outerjoin fetching from queries with oracle-style syntax
Index: EntityPersister.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/EntityPersister.java,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -d -r1.7 -r1.8
*** EntityPersister.java 20 Jan 2003 12:48:14 -0000 1.7
--- EntityPersister.java 24 Jan 2003 10:21:35 -0000 1.8
***************
*** 780,784 ****
}
! public String getQueryWhereClause(String name, boolean includeSubclasses) throws MappingException {
if ( isInherited() ) {
--- 780,784 ----
}
! public String queryWhereFragment(String name, boolean includeSubclasses) throws MappingException {
if ( isInherited() ) {
***************
*** 791,795 ****
);
}
! return frag.toFragmentString();
}
else {
--- 791,795 ----
);
}
! return " and " + frag.toFragmentString();
}
else {
Index: Loadable.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/Loadable.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** Loadable.java 20 Jan 2003 12:48:14 -0000 1.4
--- Loadable.java 24 Jan 2003 10:21:36 -0000 1.5
***************
*** 98,107 ****
* (optional operation)
*/
! public String propertySelectClauseFragment(String name, String suffix);
/**
* Get the from clause fragment, given a query alias
* (optional operation)
*/
! public String fromClauseFragment(String name, boolean innerJoin, boolean includeSubclasses);
/**
--- 98,107 ----
* (optional operation)
*/
! public String propertySelectClauseFragment(String alias, String suffix);
/**
* Get the from clause fragment, given a query alias
* (optional operation)
*/
! public String fromClauseFragment(String alias, boolean innerJoin, boolean includeSubclasses);
/**
Index: NormalizedEntityPersister.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/NormalizedEntityPersister.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** NormalizedEntityPersister.java 20 Jan 2003 18:45:18 -0000 1.1
--- NormalizedEntityPersister.java 24 Jan 2003 10:21:36 -0000 1.2
***************
*** 912,921 ****
}
! public String fromClauseFragment(String name, boolean innerJoin, boolean includeSubclasses) {
StringBuffer buf = new StringBuffer(100);
buf.append( subclassTableNameClosure[0] )
.append(' ')
! .append(name)
! .append( outerjoin(name, innerJoin, includeSubclasses).toFromFragmentString() );
return buf.toString();
}
--- 912,921 ----
}
! public String fromClauseFragment(String alias, boolean innerJoin, boolean includeSubclasses) {
StringBuffer buf = new StringBuffer(100);
buf.append( subclassTableNameClosure[0] )
.append(' ')
! .append(alias)
! .append( outerjoin(alias, innerJoin, includeSubclasses).toFromFragmentString() );
return buf.toString();
}
***************
*** 937,944 ****
}
! public String getQueryWhereClause(String alias, boolean includeSubclasses) throws MappingException {
String ojw = outerjoin(alias, true, includeSubclasses).toWhereFragmentString();
- //remove leading " AND "
- if ( ojw.toUpperCase().startsWith(" AND ") ) ojw = ojw.substring(5);
return ( ojw.trim().length()==0 ) ? null : ojw;
--- 937,942 ----
}
! public String queryWhereFragment(String alias, boolean includeSubclasses) throws MappingException {
String ojw = outerjoin(alias, true, includeSubclasses).toWhereFragmentString();
return ( ojw.trim().length()==0 ) ? null : ojw;
Index: Queryable.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister/Queryable.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** Queryable.java 20 Jan 2003 12:48:14 -0000 1.4
--- Queryable.java 24 Jan 2003 10:21:36 -0000 1.5
***************
*** 44,48 ****
* Get the where clause fragment, given a query alias
*/
! public String getQueryWhereClause(String name, boolean includeSubclasses) throws MappingException;
/**
--- 44,48 ----
* Get the where clause fragment, given a query alias
*/
! public String queryWhereFragment(String alias, boolean includeSubclasses) throws MappingException;
/**
***************
*** 50,54 ****
* column name
*/
! public String[] toColumns(String name, String property) throws QueryException;
}
--- 50,54 ----
* column name
*/
! public String[] toColumns(String alias, String property) throws QueryException;
}
|
|
From: <one...@us...> - 2003-01-24 10:21:40
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql
In directory sc8-pr-cvs1:/tmp/cvs-serv28888/sf/hibernate/sql
Modified Files:
ANSIOuterJoinFragment.java
Log Message:
fixed a problem with outerjoin fetching from queries with oracle-style syntax
Index: ANSIOuterJoinFragment.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql/ANSIOuterJoinFragment.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -d -r1.1 -r1.2
*** ANSIOuterJoinFragment.java 20 Jan 2003 18:45:18 -0000 1.1
--- ANSIOuterJoinFragment.java 24 Jan 2003 10:21:37 -0000 1.2
***************
*** 2,5 ****
--- 2,6 ----
package net.sf.hibernate.sql;
+ import net.sf.hibernate.AssertionFailure;
import net.sf.hibernate.util.StringHelper;
***************
*** 18,21 ****
--- 19,23 ----
for ( int j=0; j<fkColumns.length; j++) {
+ if (fkColumns[j].indexOf('.')<1) throw new AssertionFailure("missing alias");
buffer.append( fkColumns[j] )
.append('=')
|
|
From: <one...@us...> - 2003-01-22 13:35:21
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test
In directory sc8-pr-cvs1:/tmp/cvs-serv3160/sf/hibernate/test
Modified Files:
FooBarTest.java
Log Message:
update() support for embedded composite ids
Index: FooBarTest.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test/FooBarTest.java,v
retrieving revision 1.13
retrieving revision 1.14
diff -C2 -d -r1.13 -r1.14
*** FooBarTest.java 20 Jan 2003 18:45:18 -0000 1.13
--- FooBarTest.java 22 Jan 2003 13:35:18 -0000 1.14
***************
*** 23,26 ****
--- 23,27 ----
import net.sf.hibernate.Databinder;
import net.sf.hibernate.Environment;
+ import net.sf.hibernate.FlushMode;
import net.sf.hibernate.Hibernate;
import net.sf.hibernate.LazyInitializationException;
***************
*** 2822,2829 ****
--- 2823,2837 ----
s.close();
s = sessions.openSession();
+ s.setFlushMode(FlushMode.NEVER);
l = (Location) s.find("from l in class Location where l.countryCode = 'AU' and l.description='foo bar'").get(0);
assertTrue( l.getCountryCode().equals("AU") );
assertTrue( l.getCity().equals("Melbourne") );
assertTrue( l.getLocale().equals( Locale.getDefault() ) );
+ s.close();
+ s = sessions.openSession();
+ l.setDescription("sick're");
+ s.update(l);
+ s.flush();
+ s.connection().commit();
s.close();
s = sessions.openSession();
|
|
From: <one...@us...> - 2003-01-22 13:35:21
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl
In directory sc8-pr-cvs1:/tmp/cvs-serv3160/sf/hibernate/impl
Modified Files:
SessionImpl.java
Log Message:
update() support for embedded composite ids
Index: SessionImpl.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/SessionImpl.java,v
retrieving revision 1.11
retrieving revision 1.12
diff -C2 -d -r1.11 -r1.12
*** SessionImpl.java 22 Jan 2003 13:09:19 -0000 1.11
--- SessionImpl.java 22 Jan 2003 13:35:18 -0000 1.12
***************
*** 952,956 ****
}
- //deprecated:
public void update(Object obj) throws HibernateException {
--- 952,955 ----
***************
*** 960,964 ****
ClassPersister persister = getPersister(object);
! if ( persister.hasIdentifierProperty() ) {
if ( isEntryFor(object) ) {
--- 959,963 ----
ClassPersister persister = getPersister(object);
! //if ( persister.hasIdentifierProperty() ) {
if ( isEntryFor(object) ) {
***************
*** 972,976 ****
if (id==null) {
// assume this is a newly instantiated transient object
! throw new HibernateException("The given object has a null identifier property " + infoString(persister));
}
else {
--- 971,977 ----
if (id==null) {
// assume this is a newly instantiated transient object
! throw new HibernateException(
! "The given object has a null identifier property " + infoString(persister)
! );
}
else {
***************
*** 980,987 ****
}
! }
else {
throw new HibernateException("The given object has no identifier property - you must supply an id " + infoString(persister));
! }
}
--- 981,988 ----
}
! /*}
else {
throw new HibernateException("The given object has no identifier property - you must supply an id " + infoString(persister));
! }*/
}
|
|
From: <one...@us...> - 2003-01-22 13:32:23
|
Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/test
In directory sc8-pr-cvs1:/tmp/cvs-serv1093/hibernate/test
Modified Files:
FooBarTest.java
Log Message:
update() support for embedded composite ids
Index: FooBarTest.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/test/FooBarTest.java,v
retrieving revision 1.238
retrieving revision 1.239
diff -C2 -d -r1.238 -r1.239
*** FooBarTest.java 30 Dec 2002 13:11:42 -0000 1.238
--- FooBarTest.java 22 Jan 2003 13:32:19 -0000 1.239
***************
*** 2761,2764 ****
--- 2761,2770 ----
s.close();
s = sessions.openSession();
+ l.setDescription("sick're");
+ s.update(l);
+ s.flush();
+ s.connection().commit();
+ s.close();
+ s = sessions.openSession();
l = new Location();
l.setCountryCode("AU");
|
|
From: <one...@us...> - 2003-01-22 13:32:23
|
Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/impl
In directory sc8-pr-cvs1:/tmp/cvs-serv1093/hibernate/impl
Modified Files:
SessionImpl.java
Log Message:
update() support for embedded composite ids
Index: SessionImpl.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/impl/SessionImpl.java,v
retrieving revision 1.161
retrieving revision 1.162
diff -C2 -d -r1.161 -r1.162
*** SessionImpl.java 4 Jan 2003 13:05:14 -0000 1.161
--- SessionImpl.java 22 Jan 2003 13:32:19 -0000 1.162
***************
*** 886,890 ****
ClassPersister persister = getPersister(object);
! if ( persister.hasIdentifierProperty() ) {
if ( !isEntryFor(object) ) { //the object is transient
--- 886,890 ----
ClassPersister persister = getPersister(object);
! //if ( persister.hasIdentifierProperty() ) {
if ( !isEntryFor(object) ) { //the object is transient
***************
*** 894,898 ****
if (id==null) {
// assume this is a newly instantiated transient object
! throw new HibernateException("The given object has a null identifier property " + infoString(persister));
}
else {
--- 894,900 ----
if (id==null) {
// assume this is a newly instantiated transient object
! throw new HibernateException(
! "The given object has a null identifier property " + infoString(persister)
! );
}
else {
***************
*** 902,909 ****
}
! }
else {
throw new HibernateException("The given object has no identifier property - you must supply an id " + infoString(persister));
! }
}
--- 904,911 ----
}
! /*}
else {
throw new HibernateException("The given object has no identifier property - you must supply an id " + infoString(persister));
! }*/
}
|
|
From: <one...@us...> - 2003-01-22 13:09:22
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl
In directory sc8-pr-cvs1:/tmp/cvs-serv17676/sf/hibernate/impl
Modified Files:
DatastoreImpl.java SessionImpl.java
Log Message:
fixed a problem with unsaved-value attribute not being recognized for composite-id
added Interceptor.isUnsaved()
made save() aware of proxies
Index: DatastoreImpl.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/DatastoreImpl.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** DatastoreImpl.java 20 Jan 2003 12:48:11 -0000 1.6
--- DatastoreImpl.java 22 Jan 2003 13:09:19 -0000 1.7
***************
*** 410,413 ****
--- 410,420 ----
}
+ /**
+ * @see net.sf.hibernate.Interceptor#isUnsaved(java.lang.Object)
+ */
+ public Boolean isUnsaved(Object entity) {
+ return null;
+ }
+
}
Index: SessionImpl.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/impl/SessionImpl.java,v
retrieving revision 1.10
retrieving revision 1.11
diff -C2 -d -r1.10 -r1.11
*** SessionImpl.java 15 Jan 2003 12:49:01 -0000 1.10
--- SessionImpl.java 22 Jan 2003 13:09:19 -0000 1.11
***************
*** 488,494 ****
* object and returned.
*/
! public Serializable save(Object object) throws HibernateException {
! if (object==null) throw new NullPointerException("attempted to save null");
EntityEntry e = getEntry(object);
--- 488,496 ----
* object and returned.
*/
! public Serializable save(Object obj) throws HibernateException {
! if (obj==null) throw new NullPointerException("attempted to save null");
!
! Object object = HibernateProxyHelper.unproxy(obj, this);
EntityEntry e = getEntry(object);
***************
*** 510,514 ****
throw new JDBCException("Could not save object", sqle);
}
! return doSave(object, id);
}
--- 512,516 ----
throw new JDBCException("Could not save object", sqle);
}
! return doSave(object, obj, id);
}
***************
*** 517,525 ****
* Save a transient object with a manually assigned ID.
*/
! public void save(Object object, Serializable id) throws HibernateException {
! if (object==null) throw new NullPointerException("attempted to insert null");
if (id==null) throw new NullPointerException("null identifier passed to insert()");
EntityEntry e = getEntry(object);
if ( e!=null ) {
--- 519,529 ----
* Save a transient object with a manually assigned ID.
*/
! public void save(Object obj, Serializable id) throws HibernateException {
! if (obj==null) throw new NullPointerException("attempted to insert null");
if (id==null) throw new NullPointerException("null identifier passed to insert()");
+ Object object = HibernateProxyHelper.unproxy(obj, this);
+
EntityEntry e = getEntry(object);
if ( e!=null ) {
***************
*** 536,543 ****
}
! doSave(object, id);
}
! private Serializable doSave(Object object, Serializable id) throws HibernateException {
ClassPersister persister = getPersister(object);
--- 540,547 ----
}
! doSave(object, obj, id);
}
! private Serializable doSave(Object object, Object proxy, Serializable id) throws HibernateException {
ClassPersister persister = getPersister(object);
***************
*** 634,637 ****
--- 638,642 ----
addEntry(object, LOADED, values, id, Versioning.getVersion(values, persister), LockMode.WRITE, identityCol, persister);
//tableAccesses.add( persister.getQualifiedTableName() );
+ if (proxy!=object) proxiesByKey.put(key, proxy);
if (!identityCol) insertions.add( new ScheduledInsertion( id, values, object, persister, this ) );
***************
*** 989,1015 ****
if (e!=null && e.status!=DELETED) {
// do nothing for persistent instances
! log.trace("object already associated with session");
}
! else if (e!=null) { //e.status==DELETED
! save(object);
}
else {
// the object is transient
! ClassPersister persister = getPersister(object);
! if ( persister.hasIdentifierProperty() ) {
!
! Serializable id = persister.getIdentifier(object);
!
! if ( persister.isUnsaved(id) ) {
! save(object);
}
else {
! doUpdate(object, obj, id);
}
-
}
else {
! save(object);
}
--- 994,1040 ----
if (e!=null && e.status!=DELETED) {
// do nothing for persistent instances
! log.trace("saveOrUpdate() persistent instance");
}
! else if (e!=null) { //ie. e.status==DELETED
! log.trace("saveOrUpdate() deleted instance");
! save(obj);
}
else {
// the object is transient
! Boolean isUnsaved = interceptor.isUnsaved(object);
! if (isUnsaved==null) {
! // use unsaved-value
! ClassPersister persister = getPersister(object);
! if ( persister.hasIdentifierProperty() ) {
!
! Serializable id = persister.getIdentifier(object);
!
! if ( persister.isUnsaved(id) ) {
! if ( log.isTraceEnabled() ) log.trace("saveOrUpdate() unsaved instance with id: " + id);
! save(obj);
! }
! else {
! if ( log.isTraceEnabled() ) log.trace("saveOrUpdate() previously saved instance with id: " + id);
! doUpdate(object, obj, id);
!
! }
!
}
else {
! // no identifier property ... default to save()
! log.trace("saveOrUpdate() unsaved instance with no identifier property");
! save(obj);
}
}
else {
! if ( Boolean.TRUE.equals(isUnsaved) ) {
! log.trace("saveOrUpdate() unsaved instance");
! save(obj);
! }
! else {
! log.trace("saveOrUpdate() previously saved instance");
! update(obj);
! }
}
|
|
From: <one...@us...> - 2003-01-22 13:09:22
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/mapping
In directory sc8-pr-cvs1:/tmp/cvs-serv17676/sf/hibernate/mapping
Modified Files:
RootClass.java
Log Message:
fixed a problem with unsaved-value attribute not being recognized for composite-id
added Interceptor.isUnsaved()
made save() aware of proxies
Index: RootClass.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/mapping/RootClass.java,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -d -r1.6 -r1.7
*** RootClass.java 19 Jan 2003 11:47:07 -0000 1.6
--- RootClass.java 22 Jan 2003 13:09:19 -0000 1.7
***************
*** 140,144 ****
identifier = new Value(subnode, false, table, root, DEFAULT_IDENTIFIER_COLUMN_NAME);
if (identifier.getType()==null) throw new MappingException( "must specify an identifier type: " + getPersistentClass().getName() );
- identifier.makeIdentifier(subnode, root);
identifierProperty = null;
}
--- 140,143 ----
***************
*** 146,150 ****
identifier = new Value(subnode, false, table, root, propertyName);
identifier.setTypeByReflection( getPersistentClass(), propertyName );
- identifier.makeIdentifier(subnode, root);
identifierProperty = new Property(subnode, identifier, root);
}
--- 145,148 ----
***************
*** 152,155 ****
--- 150,154 ----
"illegal use of an array as an identifier (arrays don't reimplement equals)"
);
+ identifier.makeIdentifier(subnode, root);
}
else if ( "composite-id".equals(name) ) {
***************
*** 164,167 ****
--- 163,167 ----
identifierProperty = new Property(subnode, identifier, root);
}
+ identifier.makeIdentifier(subnode, root);
}
else if ( "version".equals(name) || "timestamp".equals(name) ) {
|
|
From: <one...@us...> - 2003-01-22 13:09:22
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test
In directory sc8-pr-cvs1:/tmp/cvs-serv17676/sf/hibernate/test
Modified Files:
Baz.hbm.xml Simple.java
Log Message:
fixed a problem with unsaved-value attribute not being recognized for composite-id
added Interceptor.isUnsaved()
made save() aware of proxies
Index: Baz.hbm.xml
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test/Baz.hbm.xml,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** Baz.hbm.xml 20 Jan 2003 18:45:18 -0000 1.5
--- Baz.hbm.xml 22 Jan 2003 13:09:20 -0000 1.6
***************
*** 5,9 ****
<class name="net.sf.hibernate.test.Baz">
<id name="code" type="string">
! <column name="idcode" length="32"/>
<generator class="uuid.hex"/>
</id>
--- 5,9 ----
<class name="net.sf.hibernate.test.Baz">
<id name="code" type="string">
! <column name="baz_id" length="32"/>
<generator class="uuid.hex"/>
</id>
Index: Simple.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test/Simple.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Simple.java 5 Jan 2003 02:11:23 -0000 1.3
--- Simple.java 22 Jan 2003 13:09:20 -0000 1.4
***************
*** 9,12 ****
--- 9,17 ----
private Simple other;
+ public Simple(int c) {
+ count=c;
+ }
+ public Simple() {}
+
public void init() {
name="Someone With Along Name";
|
|
From: <one...@us...> - 2003-01-22 13:09:22
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/proxy In directory sc8-pr-cvs1:/tmp/cvs-serv17676/sf/hibernate/proxy Modified Files: LazyInitializer.java Log Message: fixed a problem with unsaved-value attribute not being recognized for composite-id added Interceptor.isUnsaved() made save() aware of proxies Index: LazyInitializer.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/proxy/LazyInitializer.java,v retrieving revision 1.4 retrieving revision 1.5 diff -C2 -d -r1.4 -r1.5 *** LazyInitializer.java 14 Jan 2003 13:42:18 -0000 1.4 --- LazyInitializer.java 22 Jan 2003 13:09:19 -0000 1.5 *************** *** 142,146 **** } } ! /** * Return the underlying persistent object, initializing if necessary --- 142,146 ---- } } ! /** * Return the underlying persistent object, initializing if necessary |
|
From: <one...@us...> - 2003-01-22 13:09:22
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate
In directory sc8-pr-cvs1:/tmp/cvs-serv17676/sf/hibernate
Modified Files:
Interceptor.java hibernate-mapping-1.1.dtd
hibernate-mapping-2.0.dtd
Log Message:
fixed a problem with unsaved-value attribute not being recognized for composite-id
added Interceptor.isUnsaved()
made save() aware of proxies
Index: Interceptor.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/Interceptor.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Interceptor.java 5 Jan 2003 02:11:19 -0000 1.3
--- Interceptor.java 22 Jan 2003 13:09:19 -0000 1.4
***************
*** 41,45 ****
*/
public boolean onFlushDirty(Object entity, Serializable id, Object[] currentState, Object[] previousState, String[] propertyNames, Type[] types);
- //public void onPostFlush(Object entity, Serializable id, Object[] currentState, String[] propertyNames, Type[] types);
/**
* Called before an object is saved. The interceptor may modify the <tt>state</tt>, which will be used for
--- 41,44 ----
***************
*** 62,65 ****
--- 61,76 ----
*/
public void postFlush(Iterator entities);
+
+ /**
+ * Called when a transient entity is passed to <tt>saveOrUpdate()</tt>. The return value determines
+ * <ul>
+ * <li><tt>Boolean.TRUE</tt> - the entity is passed to <tt>save()</tt>, resulting in an <tt>INSERT</tt>
+ * <li><tt>Boolean.FALSE</tt> - the entity is passed to <tt>update()</tt>, resulting in an <tt>UPDATE</tt>
+ * <li><tt>null</tt> - Hibernate uses the <tt>unsaved-value</tt> mapping to determine if the object is unsaved
+ * </ul>
+ * @param entity a transient entity
+ * @return Boolean
+ */
+ public Boolean isUnsaved(Object entity);
}
Index: hibernate-mapping-1.1.dtd
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/hibernate-mapping-1.1.dtd,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** hibernate-mapping-1.1.dtd 13 Jan 2003 08:57:43 -0000 1.3
--- hibernate-mapping-1.1.dtd 22 Jan 2003 13:09:19 -0000 1.4
***************
*** 56,60 ****
<!ATTLIST id type CDATA #IMPLIED>
<!ATTLIST id length CDATA #IMPLIED>
! <!ATTLIST id unsaved-value CDATA "any"> <!-- any|none|null|"value" -->
<!-- A composite key may be modelled by a java class with a property for each
--- 56,60 ----
<!ATTLIST id type CDATA #IMPLIED>
<!ATTLIST id length CDATA #IMPLIED>
! <!ATTLIST id unsaved-value CDATA "any"> <!-- any|none|null|0|-1|.... -->
<!-- A composite key may be modelled by a java class with a property for each
***************
*** 65,69 ****
<!ATTLIST composite-id class CDATA #IMPLIED>
<!ATTLIST composite-id name CDATA #IMPLIED>
! <!ATTLIST composite-id unsaved-value (any|none|null) "any"> <!-- default: any -->
<!-- Polymorphic data requires a column holding a class discriminator value. This
--- 65,69 ----
<!ATTLIST composite-id class CDATA #IMPLIED>
<!ATTLIST composite-id name CDATA #IMPLIED>
! <!ATTLIST composite-id unsaved-value (any|none) "any">
<!-- Polymorphic data requires a column holding a class discriminator value. This
Index: hibernate-mapping-2.0.dtd
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/hibernate-mapping-2.0.dtd,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -d -r1.8 -r1.9
*** hibernate-mapping-2.0.dtd 19 Jan 2003 11:47:07 -0000 1.8
--- hibernate-mapping-2.0.dtd 22 Jan 2003 13:09:19 -0000 1.9
***************
*** 53,57 ****
<!ATTLIST id type CDATA #IMPLIED>
<!ATTLIST id length CDATA #IMPLIED>
! <!ATTLIST id unsaved-value CDATA "null"> <!-- any|none|null|"value" -->
<!-- A composite key may be modelled by a java class with a property for each
--- 53,57 ----
<!ATTLIST id type CDATA #IMPLIED>
<!ATTLIST id length CDATA #IMPLIED>
! <!ATTLIST id unsaved-value CDATA "null"> <!-- any|none|null|0|-1|... -->
<!-- A composite key may be modelled by a java class with a property for each
***************
*** 62,66 ****
<!ATTLIST composite-id class CDATA #IMPLIED>
<!ATTLIST composite-id name CDATA #IMPLIED>
! <!ATTLIST composite-id unsaved-value (any|none|null) "any"> <!-- default: any -->
<!-- Polymorphic data requires a column holding a class discriminator value. This
--- 62,66 ----
<!ATTLIST composite-id class CDATA #IMPLIED>
<!ATTLIST composite-id name CDATA #IMPLIED>
! <!ATTLIST composite-id unsaved-value (any|none) "none">
<!-- Polymorphic data requires a column holding a class discriminator value. This
|
|
From: <one...@us...> - 2003-01-22 13:09:22
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/engine
In directory sc8-pr-cvs1:/tmp/cvs-serv17676/sf/hibernate/engine
Modified Files:
Cascades.java
Log Message:
fixed a problem with unsaved-value attribute not being recognized for composite-id
added Interceptor.isUnsaved()
made save() aware of proxies
Index: Cascades.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/engine/Cascades.java,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -d -r1.5 -r1.6
*** Cascades.java 14 Jan 2003 13:42:08 -0000 1.5
--- Cascades.java 22 Jan 2003 13:09:19 -0000 1.6
***************
*** 170,173 ****
--- 170,174 ----
*/
public boolean isUnsaved(Serializable id) {
+ if ( log.isTraceEnabled() ) log.trace("unsaved-value: " + value);
return id==null || value.equals(id);
}
***************
*** 179,182 ****
--- 180,184 ----
public static final IdentifierValue SAVE_ANY = new IdentifierValue() {
public final boolean isUnsaved(Serializable id) {
+ log.trace("unsaved-value strategy ANY");
return true;
}
***************
*** 187,190 ****
--- 189,193 ----
public static final IdentifierValue SAVE_NONE = new IdentifierValue() {
public final boolean isUnsaved(Serializable id) {
+ log.trace("unsaved-value strategy NONE");
return false;
}
***************
*** 196,199 ****
--- 199,203 ----
public static final IdentifierValue SAVE_NULL = new IdentifierValue() {
public final boolean isUnsaved(Serializable id) {
+ log.trace("unsaved-value strategy NULL");
return id==null;
}
|
|
From: <one...@us...> - 2003-01-22 13:06:42
|
Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/test In directory sc8-pr-cvs1:/tmp/cvs-serv15990/hibernate/test Modified Files: One.hbm.xml Log Message: fixed a problem with unsaved-value attribute not being recognized for composite-id Index: One.hbm.xml =================================================================== RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/test/One.hbm.xml,v retrieving revision 1.1 retrieving revision 1.2 diff -C2 -d -r1.1 -r1.2 *** One.hbm.xml 4 Aug 2002 10:56:05 -0000 1.1 --- One.hbm.xml 22 Jan 2003 13:06:39 -0000 1.2 *************** *** 5,9 **** <hibernate-mapping> <class name="cirrus.hibernate.test.One" table="one"> ! <id name="key" column="one_key"> <generator class="hilo.long" /> </id> --- 5,9 ---- <hibernate-mapping> <class name="cirrus.hibernate.test.One" table="one"> ! <id name="key" column="one_key" unsaved-value="null"> <generator class="hilo.long" /> </id> |
|
From: <one...@us...> - 2003-01-22 13:06:42
|
Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate/map
In directory sc8-pr-cvs1:/tmp/cvs-serv15990/hibernate/map
Modified Files:
Component.java RootClass.java Value.java
Log Message:
fixed a problem with unsaved-value attribute not being recognized for composite-id
Index: Component.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/map/Component.java,v
retrieving revision 1.36
retrieving revision 1.37
diff -C2 -d -r1.36 -r1.37
*** Component.java 30 Nov 2002 08:19:00 -0000 1.36
--- Component.java 22 Jan 2003 13:06:39 -0000 1.37
***************
*** 53,57 ****
public Component(Node node, Class reflectedClass, String path, PersistentClass owner, boolean isNullable, Table table, Root root) throws MappingException {
! super();
setTable(table);
Node classNode = node.getAttributes().getNamedItem("class");
--- 53,57 ----
public Component(Node node, Class reflectedClass, String path, PersistentClass owner, boolean isNullable, Table table, Root root) throws MappingException {
! super(node, root);
setTable(table);
Node classNode = node.getAttributes().getNamedItem("class");
Index: RootClass.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/map/RootClass.java,v
retrieving revision 1.56
retrieving revision 1.57
diff -C2 -d -r1.56 -r1.57
*** RootClass.java 30 Dec 2002 12:48:52 -0000 1.56
--- RootClass.java 22 Jan 2003 13:06:39 -0000 1.57
***************
*** 7,20 ****
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
! import org.w3c.dom.*;
import cirrus.hibernate.cache.Cache;
import cirrus.hibernate.cache.CacheConcurrencyStrategy;
import cirrus.hibernate.cache.HashBelt;
- import cirrus.hibernate.cache.ReadWriteCache;
import cirrus.hibernate.cache.ReadOnlyCache;
import cirrus.hibernate.helpers.ReflectHelper;
import cirrus.hibernate.helpers.StringHelper;
- import cirrus.hibernate.*;
- import cirrus.hibernate.Hibernate;
public class RootClass extends PersistentClass {
--- 7,23 ----
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
! import org.w3c.dom.NamedNodeMap;
! import org.w3c.dom.Node;
! import org.w3c.dom.NodeList;
!
! import cirrus.hibernate.Hibernate;
! import cirrus.hibernate.MappingException;
import cirrus.hibernate.cache.Cache;
import cirrus.hibernate.cache.CacheConcurrencyStrategy;
import cirrus.hibernate.cache.HashBelt;
import cirrus.hibernate.cache.ReadOnlyCache;
+ import cirrus.hibernate.cache.ReadWriteCache;
import cirrus.hibernate.helpers.ReflectHelper;
import cirrus.hibernate.helpers.StringHelper;
public class RootClass extends PersistentClass {
Index: Value.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/map/Value.java,v
retrieving revision 1.45
retrieving revision 1.46
diff -C2 -d -r1.45 -r1.46
*** Value.java 26 Dec 2002 03:35:07 -0000 1.45
--- Value.java 22 Jan 2003 13:06:39 -0000 1.46
***************
*** 4,14 ****
import java.util.ArrayList;
import java.util.Iterator;
! import org.w3c.dom.*;
! import cirrus.hibernate.*;
import cirrus.hibernate.helpers.ReflectHelper;
import cirrus.hibernate.id.Assigned;
import cirrus.hibernate.id.IdentifierGenerator;
- import cirrus.hibernate.type.*;
import cirrus.hibernate.type.Type;
public class Value {
--- 4,19 ----
import java.util.ArrayList;
import java.util.Iterator;
!
! import org.w3c.dom.NamedNodeMap;
! import org.w3c.dom.Node;
! import org.w3c.dom.NodeList;
!
! import cirrus.hibernate.HibernateException;
! import cirrus.hibernate.MappingException;
import cirrus.hibernate.helpers.ReflectHelper;
import cirrus.hibernate.id.Assigned;
import cirrus.hibernate.id.IdentifierGenerator;
import cirrus.hibernate.type.Type;
+ import cirrus.hibernate.type.TypeFactory;
public class Value {
***************
*** 52,55 ****
--- 57,79 ----
protected Value() {}
+
+ protected Value(Node node, Root root) throws MappingException {
+ //GENERATOR
+ NodeList list = node.getChildNodes();
+ for ( int i=0; i<list.getLength(); i++ ) {
+ Node subnode = list.item(i);
+ if ( "generator".equals( subnode.getNodeName() ) ) {
+ try {
+ generator = root.createIDGenerator(subnode);
+ } catch (Exception e) {
+ throw new MappingException( "Error creating ID generator",e);
+ }
+ if (table!=null) table.setIdentifierGenerator(generator);
+ }
+ }
+ // UNSAVED-VALUE
+ Node nullValueNode = node.getAttributes().getNamedItem("unsaved-value");
+ if (nullValueNode!=null) nullValue = nullValueNode.getNodeValue();
+ }
public Value(Type type, Table table, String columnName) {
***************
*** 63,67 ****
//Does _not_ automatically make a column if none is specifed by XML
public Value(Node node, String path, boolean isNullable, Table table, Root root) throws MappingException {
!
this.table = table;
--- 87,91 ----
//Does _not_ automatically make a column if none is specifed by XML
public Value(Node node, String path, boolean isNullable, Table table, Root root) throws MappingException {
! this(node, root);
this.table = table;
***************
*** 123,142 ****
addColumn(col);
}
- //GENERATOR
- NodeList list = node.getChildNodes();
- for ( int i=0; i<list.getLength(); i++ ) {
- Node subnode = list.item(i);
- if ( "generator".equals( subnode.getNodeName() ) ) {
- try {
- generator = root.createIDGenerator(subnode);
- } catch (Exception e) {
- throw new MappingException( "Error creating ID generator",e);
- }
- if (table!=null) table.setIdentifierGenerator(generator);
- }
- }
- // UNSAVED-VALUE
- Node nullValueNode = node.getAttributes().getNamedItem("unsaved-value");
- if (nullValueNode!=null) nullValue = nullValueNode.getNodeValue();
}
--- 147,150 ----
|
|
From: <one...@us...> - 2003-01-22 13:06:41
|
Update of /cvsroot/hibernate/Hibernate/cirrus/hibernate
In directory sc8-pr-cvs1:/tmp/cvs-serv15990/hibernate
Modified Files:
hibernate-mapping-1.1.dtd
Log Message:
fixed a problem with unsaved-value attribute not being recognized for composite-id
Index: hibernate-mapping-1.1.dtd
===================================================================
RCS file: /cvsroot/hibernate/Hibernate/cirrus/hibernate/hibernate-mapping-1.1.dtd,v
retrieving revision 1.14
retrieving revision 1.15
diff -C2 -d -r1.14 -r1.15
*** hibernate-mapping-1.1.dtd 26 Dec 2002 03:35:07 -0000 1.14
--- hibernate-mapping-1.1.dtd 22 Jan 2003 13:06:38 -0000 1.15
***************
*** 65,69 ****
<!ATTLIST composite-id class CDATA #IMPLIED>
<!ATTLIST composite-id name CDATA #IMPLIED>
! <!ATTLIST composite-id unsaved-value (any|none|null) "any"> <!-- default: any -->
<!-- Polymorphic data requires a column holding a class discriminator value. This
--- 65,69 ----
<!ATTLIST composite-id class CDATA #IMPLIED>
<!ATTLIST composite-id name CDATA #IMPLIED>
! <!ATTLIST composite-id unsaved-value (any|none) "any">
<!-- Polymorphic data requires a column holding a class discriminator value. This
|
|
From: <one...@us...> - 2003-01-20 18:51:15
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister In directory sc8-pr-cvs1:/tmp/cvs-serv12617/sf/hibernate/persister Removed Files: MultiTableEntityPersister.java Log Message: refactorings to create SQL generation layer --- MultiTableEntityPersister.java DELETED --- |
|
From: <one...@us...> - 2003-01-20 18:45:32
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql
In directory sc8-pr-cvs1:/tmp/cvs-serv9798/sf/hibernate/sql
Added Files:
ANSIOuterJoinFragment.java CaseFragment.java
ConditionFragment.java Delete.java InFragment.java Insert.java
OracleOuterJoinFragment.java OuterJoinFragment.java
Select.java SelectFragment.java SimpleSelect.java Update.java
Log Message:
refactorings to create SQL generation layer
--- NEW FILE: ANSIOuterJoinFragment.java ---
//$Id: ANSIOuterJoinFragment.java,v 1.1 2003/01/20 18:45:18 oneovthafew Exp $
package net.sf.hibernate.sql;
import net.sf.hibernate.util.StringHelper;
public class ANSIOuterJoinFragment extends OuterJoinFragment {
private StringBuffer buffer = new StringBuffer();
public void addJoin(String tableName, String alias, String[] fkColumns, String[] pkColumns, boolean innerJoin) {
buffer.append( innerJoin ? " inner join " : " left outer join ")
.append(tableName)
.append(' ')
.append(alias)
.append(" on ");
for ( int j=0; j<fkColumns.length; j++) {
buffer.append( fkColumns[j] )
.append('=')
.append(alias)
.append(StringHelper.DOT)
.append( pkColumns[j] );
if ( j<fkColumns.length-1 ) buffer.append(" and ");
}
}
public String toFromFragmentString() {
return buffer.toString();
}
public String toWhereFragmentString() {
return StringHelper.EMPTY_STRING;
}
public void addJoins(String fromFragment, String whereFragment) {
buffer.append(fromFragment);
//where fragment must be empty!
}
}
--- NEW FILE: CaseFragment.java ---
//$Id: CaseFragment.java,v 1.1 2003/01/20 18:45:18 oneovthafew Exp $
package net.sf.hibernate.sql;
import java.util.Iterator;
import java.util.Map;
import net.sf.hibernate.util.StringHelper;
import org.apache.commons.collections.SequencedHashMap;
/**
* Represents an SQL <tt>case when .... then .... end as ...</tt>
*/
public class CaseFragment {
private String returnColumnName;
private Map cases = new SequencedHashMap();
public CaseFragment setReturnColumnName(String returnColumnName) {
this.returnColumnName = returnColumnName;
return this;
}
public CaseFragment setReturnColumnName(String returnColumnName, String suffix) {
return setReturnColumnName( StringHelper.suffix(returnColumnName, suffix) );
}
public CaseFragment addWhenColumnNotNull(String alias, String columnName, String value) {
cases.put( alias + StringHelper.DOT + columnName + " is not null", value );
return this;
}
public String toFragmentString() {
StringBuffer buf = new StringBuffer( cases.size() * 15 + 10 );
buf.append("case");
Iterator iter = cases.entrySet().iterator();
while ( iter.hasNext() ) {
Map.Entry me = (Map.Entry) iter.next();
buf.append(" when ")
.append( me.getKey() )
.append(" then ")
.append( me.getValue() );
}
return buf.append(" end as ")
.append(returnColumnName)
.toString();
}
}
--- NEW FILE: ConditionFragment.java ---
//$Id: ConditionFragment.java,v 1.1 2003/01/20 18:45:18 oneovthafew Exp $
package net.sf.hibernate.sql;
import net.sf.hibernate.util.ArrayHelper;
import net.sf.hibernate.util.StringHelper;
/**
*/
public class ConditionFragment {
private String tableAlias;
private String[] lhs;
private String[] rhs;
private String op = "=";
/**
* Sets the op.
* @param op The op to set
*/
public ConditionFragment setOp(String op) {
this.op = op;
return this;
}
/**
* Sets the tableAlias.
* @param tableAlias The tableAlias to set
*/
public ConditionFragment setTableAlias(String tableAlias) {
this.tableAlias = tableAlias;
return this;
}
public ConditionFragment setCondition(String[] lhs, String[] rhs) {
this.lhs = lhs;
this.rhs = rhs;
return this;
}
public ConditionFragment setCondition(String[] lhs, String rhs) {
this.lhs = lhs;
this.rhs = ArrayHelper.fillArray(rhs, lhs.length);
return this;
}
public String toFragmentString() {
StringBuffer buf = new StringBuffer( lhs.length * 10 );
for ( int i=0; i<lhs.length; i++ ) {
buf.append(tableAlias)
.append(StringHelper.DOT)
.append( lhs[i] )
.append(op)
.append( rhs[i] );
if (i<lhs.length-1) buf.append(" and ");
}
return buf.toString();
}
}
--- NEW FILE: Delete.java ---
//$Id: Delete.java,v 1.1 2003/01/20 18:45:18 oneovthafew Exp $
package net.sf.hibernate.sql;
import net.sf.hibernate.util.StringHelper;
/**
* An SQL <tt>INSERT</tt> statement
*/
public class Delete {
private String tableName;
private String[] primaryKeyColumnNames;
private String versionColumnName;
public Delete setTableName(String tableName) {
this.tableName = tableName;
return this;
}
public String toStatementString() {
StringBuffer buf = new StringBuffer( tableName.length() + 10 );
buf.append("delete from ")
.append(tableName)
.append(" where ")
.append( StringHelper.join("=? and ", primaryKeyColumnNames) )
.append("=?");
if (versionColumnName!=null) {
buf.append(" and ")
.append(versionColumnName)
.append("=?");
}
return buf.toString();
}
public Delete setPrimaryKeyColumnNames(String[] primaryKeyColumnNames) {
this.primaryKeyColumnNames = primaryKeyColumnNames;
return this;
}
public Delete setVersionColumnName(String versionColumnName) {
this.versionColumnName = versionColumnName;
return this;
}
}
--- NEW FILE: InFragment.java ---
//$Id: InFragment.java,v 1.1 2003/01/20 18:45:18 oneovthafew Exp $
package net.sf.hibernate.sql;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;
import net.sf.hibernate.util.StringHelper;
/**
* Represents an <tt>... in(...)</tt> expression
*/
public class InFragment {
private String columnName;
private Set values = new HashSet();
public InFragment addValue(String value) {
values.add(value);
return this;
}
public InFragment setColumn(String columnName) {
this.columnName = columnName;
return this;
}
public InFragment setColumn(String alias, String columnName) {
return setColumn( this.columnName = alias + StringHelper.DOT + columnName );
}
public String toFragmentString() {
StringBuffer buf = new StringBuffer( values.size() * 5 );
buf.append(columnName);
if ( values.size()>1 ) {
buf.append(" in (");
Iterator iter = values.iterator();
while ( iter.hasNext() ) {
buf.append( iter.next() );
if ( iter.hasNext() ) buf.append(StringHelper.COMMA_SPACE);
}
buf.append(StringHelper.CLOSE_PAREN);
}
else {
buf.append("=").append( values.iterator().next() );
}
return buf.toString();
}
}
--- NEW FILE: Insert.java ---
//$Id: Insert.java,v 1.1 2003/01/20 18:45:18 oneovthafew Exp $
package net.sf.hibernate.sql;
import java.util.Iterator;
import java.util.Map;
import net.sf.hibernate.dialect.Dialect;
import net.sf.hibernate.type.LiteralType;
import net.sf.hibernate.util.StringHelper;
import org.apache.commons.collections.SequencedHashMap;
/**
* An SQL <tt>INSERT</tt> statement
*/
public class Insert {
public Insert(Dialect dialect) {
this.dialect = dialect;
}
private Dialect dialect;
private String tableName;
private Map columns = new SequencedHashMap();
public Insert addColumn(String columnName) {
return addColumn(columnName, "?");
}
public Insert addColumns(String[] columnNames) {
for ( int i=0; i<columnNames.length; i++ ) {
addColumn( columnNames[i] );
}
return this;
}
public Insert addColumn(String columnName, String value) {
columns.put(columnName, value);
return this;
}
public Insert addColumn(String columnName, Object value, LiteralType type) throws Exception {
return addColumn( columnName, type.objectToSQLString(value) );
}
public Insert addIdentityColumn(String columnName) {
String value = dialect.getIdentityInsertString();
if (value!=null) addColumn(columnName, value);
return this;
}
public Insert setTableName(String tableName) {
this.tableName = tableName;
return this;
}
public String toStatementString() {
StringBuffer buf = new StringBuffer( columns.size()*15 + tableName.length() + 10 );
buf.append("insert into ")
.append(tableName);
if ( columns.size()==0 ) {
buf.append(' ').append( dialect.getNoColumnsInsertString() );
}
else {
buf.append(" (");
Iterator iter = columns.keySet().iterator();
while ( iter.hasNext() ) {
buf.append( iter.next() );
if ( iter.hasNext() ) buf.append(StringHelper.COMMA_SPACE);
}
buf.append(") values (");
iter = columns.values().iterator();
while ( iter.hasNext() ) {
buf.append( iter.next() );
if ( iter.hasNext() ) buf.append(StringHelper.COMMA_SPACE);
}
buf.append(')');
}
return buf.toString();
}
}
--- NEW FILE: OracleOuterJoinFragment.java ---
//$Id: OracleOuterJoinFragment.java,v 1.1 2003/01/20 18:45:18 oneovthafew Exp $
package net.sf.hibernate.sql;
import net.sf.hibernate.util.StringHelper;
public class OracleOuterJoinFragment extends OuterJoinFragment {
private StringBuffer afterFrom = new StringBuffer();
private StringBuffer afterWhere = new StringBuffer();
public void addJoin(String tableName, String alias, String[] fkColumns, String[] pkColumns, boolean innerJoin) {
afterFrom.append(StringHelper.COMMA_SPACE)
.append(tableName)
.append(' ')
.append(alias);
for ( int j=0; j<fkColumns.length; j++) {
afterWhere.append(" and ")
.append( fkColumns[j] )
.append('=')
.append(alias)
.append(StringHelper.DOT)
.append( pkColumns[j] );
if (!innerJoin) afterWhere.append("(+)");
}
}
public String toFromFragmentString() {
return afterFrom.toString();
}
public String toWhereFragmentString() {
return afterWhere.toString();
}
public void addJoins(String fromFragment, String whereFragment) {
afterFrom.append(fromFragment);
afterWhere.append(whereFragment);
}
}
--- NEW FILE: OuterJoinFragment.java ---
//$Id: OuterJoinFragment.java,v 1.1 2003/01/20 18:45:18 oneovthafew Exp $
package net.sf.hibernate.sql;
public abstract class OuterJoinFragment {
public abstract void addJoin(String tableName, String alias, String[] fkColumns, String[] pkColumns, boolean innerJoin);
public abstract void addJoins(String fromFragment, String whereFragment);
public abstract String toFromFragmentString();
public abstract String toWhereFragmentString();
}
--- NEW FILE: Select.java ---
//$Id: Select.java,v 1.1 2003/01/20 18:45:18 oneovthafew Exp $
package net.sf.hibernate.sql;
/**
*/
public class Select {
private String selectClause;
private String fromClause;
private String outerJoinsAfterFrom;
private String whereClause;
private String outerJoinsAfterWhere;
private String orderByClause;
/**
* Construct an SQL <tt>SELECT</tt> statement from the given clauses
*/
public String toStatementString() {
StringBuffer buf = new StringBuffer(
selectClause.length() + fromClause.length() + outerJoinsAfterFrom.length() + whereClause.length() + outerJoinsAfterWhere.length() + 20
);
buf.append("SELECT ").append(selectClause)
.append(" FROM ").append(fromClause)
.append(outerJoinsAfterFrom)
.append(" WHERE ").append(whereClause)
.append(outerJoinsAfterWhere);
if (orderByClause!=null) buf.append(" ORDER BY ").append(orderByClause);
return buf.toString();
}
/**
* Sets the fromClause.
* @param fromClause The fromClause to set
*/
public Select setFromClause(String fromClause) {
this.fromClause = fromClause;
return this;
}
public Select setFromClause(String tableName, String alias) {
this.fromClause = tableName + ' ' + alias;
return this;
}
/**
* Sets the orderByClause.
* @param orderByClause The orderByClause to set
*/
public Select setOrderByClause(String orderByClause) {
this.orderByClause = orderByClause;
return this;
}
/**
* Sets the outerJoins.
* @param outerJoinsAfterFrom The outerJoinsAfterFrom to set
* @param outerJoinsAfterWhere The outerJoinsAfterWhere to set
*/
public Select setOuterJoins(String outerJoinsAfterFrom, String outerJoinsAfterWhere) {
this.outerJoinsAfterFrom = outerJoinsAfterFrom;
this.outerJoinsAfterWhere = outerJoinsAfterWhere;
return this;
}
/**
* Sets the selectClause.
* @param selectClause The selectClause to set
*/
public Select setSelectClause(String selectClause) {
this.selectClause = selectClause;
return this;
}
/**
* Sets the whereClause.
* @param whereClause The whereClause to set
*/
public Select setWhereClause(String whereClause) {
this.whereClause = whereClause;
return this;
}
}
--- NEW FILE: SelectFragment.java ---
//$Id: SelectFragment.java,v 1.1 2003/01/20 18:45:18 oneovthafew Exp $
package net.sf.hibernate.sql;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.sf.hibernate.util.StringHelper;
/**
* Represents part of an SQL <tt>SELECT</tt> clause
*/
public class SelectFragment {
private String suffix;
private List columns = new ArrayList();
private List aliases = new ArrayList();
private List columnAliases = new ArrayList();
public SelectFragment setSuffix(String suffix) {
this.suffix = suffix;
return this;
}
public SelectFragment addColumn(String columnName) {
addColumn(null, columnName);
return this;
}
public SelectFragment addColumns(String[] columnNames) {
for (int i=0; i<columnNames.length; i++) addColumn( columnNames[i] );
return this;
}
public SelectFragment addColumn(String tableAlias, String columnName) {
return addColumn(tableAlias, columnName, columnName);
}
public SelectFragment addColumn(String tableAlias, String columnName, String columnAlias) {
columns.add(columnName);
aliases.add(tableAlias);
columnAliases.add(columnAlias);
return this;
}
public SelectFragment addColumns(String tableAlias, String[] columnNames) {
for (int i=0; i<columnNames.length; i++) addColumn( tableAlias, columnNames[i] );
return this;
}
public SelectFragment addColumns(String tableAlias, String[] columnNames, String[] columnAliases) {
for (int i=0; i<columnNames.length; i++) addColumn( tableAlias, columnNames[i], columnAliases[i] );
return this;
}
public String toFragmentString() {
StringBuffer buf = new StringBuffer( columns.size() * 10 );
Iterator iter = columns.iterator();
Iterator aliasIter = aliases.iterator();
Iterator columnAliasIter = columnAliases.iterator();
while ( iter.hasNext() ) {
String col = (String) iter.next();
buf.append(StringHelper.COMMA_SPACE);
String alias = (String) aliasIter.next();
if (alias!=null) buf.append(alias).append(StringHelper.DOT);
String columnAlias = (String) columnAliasIter.next();
buf.append(col)
.append(" as ")
.append( StringHelper.suffix( columnAlias, suffix) );
}
return buf.toString();
}
}
--- NEW FILE: SimpleSelect.java ---
//$Id: SimpleSelect.java,v 1.1 2003/01/20 18:45:18 oneovthafew Exp $
package net.sf.hibernate.sql;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import net.sf.hibernate.util.StringHelper;
/**
* An SQL <tt>SELECT</tt> statement
*/
public class SimpleSelect {
private String tableName;
private String orderBy;
private List columns = new ArrayList();
private List whereTokens = new ArrayList();
public SimpleSelect addColumns(String[] columnNames) {
for ( int i=0; i<columnNames.length; i++ ) {
addColumn( columnNames[i] );
}
return this;
}
public SimpleSelect addColumn(String columnName) {
columns.add(columnName);
return this;
}
public SimpleSelect setTableName(String tableName) {
this.tableName = tableName;
return this;
}
public SimpleSelect addWhereToken(String token) {
whereTokens.add(token);
return this;
}
public SimpleSelect addCondition(String lhs, String op, String rhs) {
whereTokens.add( lhs + ' ' + op + ' ' + rhs );
return this;
}
public SimpleSelect addCondition(String lhs, String condition) {
whereTokens.add( lhs + ' ' + condition );
return this;
}
public SimpleSelect addCondition(String[] lhs, String op, String[] rhs) {
for ( int i=0; i<lhs.length; i++ ) {
addCondition( lhs[i], op, rhs[i] );
if ( i!=lhs.length-1) whereTokens.add("and");
}
return this;
}
public SimpleSelect addCondition(String[] lhs, String condition) {
for ( int i=0; i<lhs.length; i++ ) {
addCondition( lhs[i], condition );
if ( i!=lhs.length-1) whereTokens.add("and");
}
return this;
}
public String toStatementString() {
StringBuffer buf = new StringBuffer( columns.size()*10 + tableName.length() + whereTokens.size() * 10 + 10 );
buf.append("select ");
Iterator iter = columns.iterator();
while ( iter.hasNext() ) {
buf.append( iter.next() );
if ( iter.hasNext() ) buf.append(StringHelper.COMMA_SPACE);
}
buf.append(" from ")
.append(tableName);
if ( whereTokens.size() > 0 ) {
buf.append(" where ")
.append( toWhereClause() );
}
if (orderBy!=null) buf.append(orderBy);
return buf.toString();
}
public String toWhereClause() {
StringBuffer buf = new StringBuffer( whereTokens.size() * 5 );
Iterator iter = whereTokens.iterator();
while ( iter.hasNext() ) {
buf.append( iter.next() );
if ( iter.hasNext() ) buf.append(' ');
}
return buf.toString();
}
public void setOrderBy(String orderBy) {
this.orderBy = orderBy;
}
}
--- NEW FILE: Update.java ---
//$Id: Update.java,v 1.1 2003/01/20 18:45:18 oneovthafew Exp $
package net.sf.hibernate.sql;
import java.util.Iterator;
import java.util.Map;
import net.sf.hibernate.type.LiteralType;
import net.sf.hibernate.util.StringHelper;
import org.apache.commons.collections.SequencedHashMap;
/**
* An SQL <tt>UPDATE</tt> statement
*/
public class Update {
private String tableName;
private String primaryKeyColumnNames[];
private String versionColumnName;
private Map columns = new SequencedHashMap();
public Update addColumns(String[] columnNames) {
for ( int i=0; i<columnNames.length; i++ ) {
addColumn( columnNames[i] );
}
return this;
}
public Update addColumns(String[] columnNames, String value) {
for ( int i=0; i<columnNames.length; i++ ) {
addColumn( columnNames[i], value );
}
return this;
}
public Update addColumn(String columnName) {
return addColumn(columnName, "?");
}
public Update addColumn(String columnName, String value) {
columns.put(columnName, value);
return this;
}
public Update addColumn(String columnName, Object value, LiteralType type) throws Exception {
return addColumn( columnName, type.objectToSQLString(value) );
}
public Update setTableName(String tableName) {
this.tableName = tableName;
return this;
}
public String toStatementString() {
StringBuffer buf = new StringBuffer( columns.size()*15 + tableName.length() + 10 );
buf.append("update ")
.append(tableName)
.append(" set ");
Iterator iter = columns.entrySet().iterator();
while ( iter.hasNext() ) {
Map.Entry e = (Map.Entry) iter.next();
buf.append( e.getKey() )
.append('=')
.append( e.getValue() );
if ( iter.hasNext() ) buf.append(StringHelper.COMMA_SPACE);
}
buf.append(" where ")
.append( StringHelper.join("=? and ", primaryKeyColumnNames) )
.append("=?");
if (versionColumnName!=null) {
buf.append(" and ")
.append(versionColumnName)
.append("=?");
}
return buf.toString();
}
public Update setPrimaryKeyColumnNames(String[] primaryKeyColumnNames) {
this.primaryKeyColumnNames = primaryKeyColumnNames;
return this;
}
public Update setVersionColumnName(String versionColumnName) {
this.versionColumnName = versionColumnName;
return this;
}
}
|
|
From: <one...@us...> - 2003-01-20 18:45:31
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/persister
In directory sc8-pr-cvs1:/tmp/cvs-serv9798/sf/hibernate/persister
Added Files:
NormalizedEntityPersister.java
Log Message:
refactorings to create SQL generation layer
--- NEW FILE: NormalizedEntityPersister.java ---
//$Id: NormalizedEntityPersister.java,v 1.1 2003/01/20 18:45:18 oneovthafew Exp $
package net.sf.hibernate.persister;
import net.sf.hibernate.util.ArrayHelper;
import net.sf.hibernate.util.JDBCExceptionReporter;
import net.sf.hibernate.util.StringHelper;
import net.sf.hibernate.loader.EntityLoader;
import net.sf.hibernate.loader.UniqueEntityLoader;
import net.sf.hibernate.mapping.Column;
import net.sf.hibernate.mapping.Component;
import net.sf.hibernate.mapping.PersistentClass;
import net.sf.hibernate.mapping.Property;
import net.sf.hibernate.mapping.Subclass;
import net.sf.hibernate.mapping.Table;
import java.io.InvalidObjectException;
import java.io.ObjectStreamException;
import java.io.Serializable;
import java.sql.PreparedStatement;
[...1004 lines suppressed...]
return alias + ( (tab==0) ? StringHelper.EMPTY_STRING : StringHelper.UNDERSCORE +Integer.toString(tab) );
}
public String fromJoinFragment(String alias, boolean innerJoin) {
return outerjoin(alias, innerJoin, true).toFromFragmentString();
}
public String whereJoinFragment(String alias, boolean innerJoin) {
return outerjoin(alias, innerJoin, true).toWhereFragmentString();
}
}
|
|
From: <one...@us...> - 2003-01-20 18:45:30
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/loader In directory sc8-pr-cvs1:/tmp/cvs-serv9798/sf/hibernate/loader Removed Files: AnsiOuterJoinGenerator.java OracleOuterJoinGenerator.java OuterJoinGenerator.java Log Message: refactorings to create SQL generation layer --- AnsiOuterJoinGenerator.java DELETED --- --- OracleOuterJoinGenerator.java DELETED --- --- OuterJoinGenerator.java DELETED --- |
|
From: <one...@us...> - 2003-01-20 18:45:27
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test
In directory sc8-pr-cvs1:/tmp/cvs-serv9798/sf/hibernate/test
Modified Files:
Baz.hbm.xml Baz.java FooBarTest.java
Log Message:
refactorings to create SQL generation layer
Index: Baz.hbm.xml
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test/Baz.hbm.xml,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** Baz.hbm.xml 9 Jan 2003 12:24:51 -0000 1.4
--- Baz.hbm.xml 20 Jan 2003 18:45:18 -0000 1.5
***************
*** 113,116 ****
--- 113,122 ----
</array>
+ <list name="fees" lazy="true" cascade="all">
+ <key column="bazid"/>
+ <index column="bazind"/>
+ <one-to-many class="net.sf.hibernate.test.Fee"/>
+ </list>
+
<list name="customs">
<key column="id_"/>
Index: Baz.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test/Baz.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -d -r1.3 -r1.4
*** Baz.java 5 Jan 2003 02:11:23 -0000 1.3
--- Baz.java 20 Jan 2003 18:45:18 -0000 1.4
***************
*** 27,30 ****
--- 27,31 ----
private Map fooComponentToFoo;
private Map glarchToFoo;
+ private List fees;
Baz() {}
***************
*** 228,231 ****
--- 229,240 ----
}
+ public List getFees() {
+ return fees;
+ }
+
+ public void setFees(List fees) {
+ this.fees = fees;
+ }
+
}
Index: FooBarTest.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/test/FooBarTest.java,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -d -r1.12 -r1.13
*** FooBarTest.java 20 Jan 2003 12:48:14 -0000 1.12
--- FooBarTest.java 20 Jan 2003 18:45:18 -0000 1.13
***************
*** 161,164 ****
--- 161,186 ----
}
+ public void testCascadeSave() throws Exception {
+ Session s = sessions.openSession();
+ Transaction t = s.beginTransaction();
+ Baz baz = new Baz();
+ List list = new ArrayList();
+ list.add( new Fee() );
+ list.add( new Fee() );
[...4046 lines suppressed...]
! "Many.hbm.xml",
! "Immutable.hbm.xml",
! "Fee.hbm.xml",
! "Vetoer.hbm.xml",
! "Holder.hbm.xml",
! "Location.hbm.xml",
! "Stuff.hbm.xml",
! "Container.hbm.xml",
! "Simple.hbm.xml"
! } );
! return new TestSuite(FooBarTest.class);
! }
! catch (Exception e) {
! e.printStackTrace();
! throw e;
! }
}
!
}
|
|
From: <one...@us...> - 2003-01-20 18:40:08
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql In directory sc8-pr-cvs1:/tmp/cvs-serv7463/sf/hibernate/sql Log Message: Directory /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/sql added to the repository |
|
From: <one...@us...> - 2003-01-20 12:56:39
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type
In directory sc8-pr-cvs1:/tmp/cvs-serv2323/sf/hibernate/type
Modified Files:
LocaleType.java
Log Message:
major refactoring to create SQL Generation layer
more efficient queries against normalized mappings
Index: LocaleType.java
===================================================================
RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/type/LocaleType.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -d -r1.4 -r1.5
*** LocaleType.java 19 Jan 2003 11:47:08 -0000 1.4
--- LocaleType.java 20 Jan 2003 12:48:17 -0000 1.5
***************
*** 12,15 ****
--- 12,16 ----
import net.sf.hibernate.Hibernate;
import net.sf.hibernate.HibernateException;
+ import net.sf.hibernate.util.StringHelper;
public class LocaleType extends ImmutableType implements LiteralType {
***************
*** 22,28 ****
else {
StringTokenizer tokens = new StringTokenizer(str, "_");
! String language = tokens.hasMoreTokens() ? tokens.nextToken() : "";
! String country = tokens.hasMoreTokens() ? tokens.nextToken() : "";
! String variant = tokens.hasMoreTokens() ? tokens.nextToken() : "";
return new Locale(language, country, variant);
}
--- 23,29 ----
else {
StringTokenizer tokens = new StringTokenizer(str, "_");
! String language = tokens.hasMoreTokens() ? tokens.nextToken() : StringHelper.EMPTY_STRING;
! String country = tokens.hasMoreTokens() ? tokens.nextToken() : StringHelper.EMPTY_STRING;
! String variant = tokens.hasMoreTokens() ? tokens.nextToken() : StringHelper.EMPTY_STRING;
return new Locale(language, country, variant);
}
|