From: <tu...@us...> - 2004-06-24 19:41:12
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/cfg In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv28469/src/net/sf/hibernate/cfg Modified Files: Configuration.java Log Message: Also create id generators for collection identifiers, HB-1040 Index: Configuration.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/cfg/Configuration.java,v retrieving revision 1.31 retrieving revision 1.32 diff -C2 -d -r1.31 -r1.32 *** Configuration.java 4 Jun 2004 01:27:37 -0000 1.31 --- Configuration.java 24 Jun 2004 19:41:03 -0000 1.32 *************** *** 41,52 **** import net.sf.hibernate.id.PersistentIdentifierGenerator; import net.sf.hibernate.impl.SessionFactoryImpl; ! import net.sf.hibernate.mapping.Collection; ! import net.sf.hibernate.mapping.ForeignKey; ! import net.sf.hibernate.mapping.Index; ! import net.sf.hibernate.mapping.PersistentClass; ! import net.sf.hibernate.mapping.Property; ! import net.sf.hibernate.mapping.RootClass; ! import net.sf.hibernate.mapping.Table; ! import net.sf.hibernate.mapping.SimpleValue; import net.sf.hibernate.cache.Cache; import net.sf.hibernate.cache.CacheConcurrencyStrategy; --- 41,45 ---- import net.sf.hibernate.id.PersistentIdentifierGenerator; import net.sf.hibernate.impl.SessionFactoryImpl; ! import net.sf.hibernate.mapping.*; import net.sf.hibernate.cache.Cache; import net.sf.hibernate.cache.CacheConcurrencyStrategy; *************** *** 434,437 **** --- 427,441 ---- ); } + iter = collections.values().iterator(); + while (iter.hasNext()) { + Collection collection = (Collection) iter.next(); + if (collection instanceof IdentifierCollection) { + IdentifierGenerator ig = ( (IdentifierCollection) collection ).getIdentifier().createIdentifierGenerator(dialect); + if ( ig instanceof PersistentIdentifierGenerator ) generators.put( + ( (PersistentIdentifierGenerator) ig ).generatorKey(), ig + ); + } + } + return generators.values().iterator(); } |