From: <one...@us...> - 2003-03-29 04:20:27
|
Update of /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/id In directory sc8-pr-cvs1:/tmp/cvs-serv6518/id Modified Files: IdentifierGeneratorFactory.java Added Files: ForeignGenerator.java Log Message: added foreign id generator for 1-to-1 associations --- NEW FILE: ForeignGenerator.java --- package net.sf.hibernate.id; import java.io.Serializable; import java.sql.SQLException; import java.util.Properties; import net.sf.hibernate.HibernateException; import net.sf.hibernate.MappingException; import net.sf.hibernate.dialect.Dialect; import net.sf.hibernate.engine.SessionImplementor; import net.sf.hibernate.type.Type; /** * <b>foreign</b><br> * <br> * An <tt>Identifier</tt> generator that uses the value of the id property of an * associated object * <br> * One mapping parameter id supported: property. */ public class ForeignGenerator implements IdentifierGenerator, Configurable { private String propertyName; /** * @see net.sf.hibernate.id.IdentifierGenerator#generate(net.sf.hibernate.engine.SessionImplementor, java.lang.Object) */ public Serializable generate(SessionImplementor session, Object object) throws SQLException, HibernateException { Object associatedObject = session.getFactory() .getClassMetadata( object.getClass() ) .getPropertyValue(object, propertyName); return session.getEntityIdentifierIfNotUnsaved(associatedObject); } /** * @see net.sf.hibernate.id.Configurable#configure(net.sf.hibernate.type.Type, java.util.Properties, net.sf.hibernate.dialect.Dialect) */ public void configure(Type type, Properties params, Dialect d) throws MappingException { propertyName = params.getProperty("property"); } } Index: IdentifierGeneratorFactory.java =================================================================== RCS file: /cvsroot/hibernate/Hibernate2/src/net/sf/hibernate/id/IdentifierGeneratorFactory.java,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -d -r1.2 -r1.3 *** IdentifierGeneratorFactory.java 29 Mar 2003 04:08:47 -0000 1.2 --- IdentifierGeneratorFactory.java 29 Mar 2003 04:20:18 -0000 1.3 *************** *** 43,47 **** idgenerators.put("seqhilo", SequenceHiLoGenerator.class); idgenerators.put("vm", CounterGenerator.class); ! idgenerators.put("onetoone", OneToOneGenerator.class); } --- 43,47 ---- idgenerators.put("seqhilo", SequenceHiLoGenerator.class); idgenerators.put("vm", CounterGenerator.class); ! idgenerators.put("foreign", ForeignGenerator.class); } |