From: <hib...@li...> - 2006-03-13 22:53:13
|
Author: epbernard Date: 2006-03-13 17:52:53 -0500 (Mon, 13 Mar 2006) New Revision: 9613 Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/Channel.java trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/Presenter.java trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/TvMagazin.java trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/TvMagazinPk.java Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/CompositeIdTest.java Log: ANN-15 ANN-16 Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/Channel.java =================================================================== --- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/Channel.java 2006-03-13 16:20:09 UTC (rev 9612) +++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/Channel.java 2006-03-13 22:52:53 UTC (rev 9613) @@ -0,0 +1,14 @@ +//$Id: $ +package org.hibernate.test.annotations.cid; + +import javax.persistence.Entity; +import javax.persistence.Id; +import javax.persistence.GeneratedValue; + +/** + * @author Emmanuel Bernard + */ +@Entity +public class Channel { + @Id @GeneratedValue public Integer id; +} Modified: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/CompositeIdTest.java =================================================================== --- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/CompositeIdTest.java 2006-03-13 16:20:09 UTC (rev 9612) +++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/CompositeIdTest.java 2006-03-13 22:52:53 UTC (rev 9613) @@ -1,13 +1,14 @@ //$Id$ package org.hibernate.test.annotations.cid; +import java.util.List; +import java.util.Date; + import org.hibernate.Query; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.test.annotations.TestCase; -import java.util.List; - /** * test some composite id functionalities * @@ -58,10 +59,46 @@ s.close(); } + public void testManyToOneInCompositeId() throws Exception { + Session s = openSession(); + Transaction tx = s.beginTransaction(); + Channel channel = new Channel(); + s.persist( channel ); + Presenter pres = new Presenter(); + pres.name = "Casimir"; + s.persist( pres ); + TvMagazinPk pk = new TvMagazinPk(); + TvMagazin mag = new TvMagazin(); + mag.time = new Date(); + mag.id = pk; + pk.name = "Trax"; + pk.channel = channel; + pk.presenter = pres; + s.persist( mag ); + tx.commit(); + s.clear(); + tx = s.beginTransaction(); + mag = (TvMagazin) s.createQuery( "from TvMagazin mag where mag.id.name = :name") + .setParameter( "name", "Trax" ).uniqueResult(); + assertNotNull( mag.id ); + assertNotNull( mag.id.channel ); + assertEquals( channel.id, mag.id.channel.id ); + assertNotNull( mag.id.presenter ); + assertEquals( pres.name, mag.id.presenter.name ); + s.delete( mag ); + s.delete( mag.id.channel ); + s.delete( mag.id.presenter ); + tx.commit(); + s.close(); + } + protected Class[] getMappings() { return new Class[] { - Parent.class, - Child.class + Parent.class, + Child.class, + Channel.class, + TvMagazin.class, + Presenter.class }; } } Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/Presenter.java =================================================================== --- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/Presenter.java 2006-03-13 16:20:09 UTC (rev 9612) +++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/Presenter.java 2006-03-13 22:52:53 UTC (rev 9613) @@ -0,0 +1,13 @@ +//$Id: $ +package org.hibernate.test.annotations.cid; + +import javax.persistence.Entity; +import javax.persistence.Id; + +/** + * @author Emmanuel Bernard + */ +@Entity +public class Presenter { + @Id public String name; +} Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/TvMagazin.java =================================================================== --- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/TvMagazin.java 2006-03-13 16:20:09 UTC (rev 9612) +++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/TvMagazin.java 2006-03-13 22:52:53 UTC (rev 9613) @@ -0,0 +1,17 @@ +//$Id: $ +package org.hibernate.test.annotations.cid; + +import java.util.Date; +import javax.persistence.Entity; +import javax.persistence.EmbeddedId; +import javax.persistence.Temporal; +import javax.persistence.TemporalType; + +/** + * @author Emmanuel Bernard + */ +@Entity +public class TvMagazin { + @EmbeddedId public TvMagazinPk id; + @Temporal(TemporalType.TIME) Date time; +} Added: trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/TvMagazinPk.java =================================================================== --- trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/TvMagazinPk.java 2006-03-13 16:20:09 UTC (rev 9612) +++ trunk/HibernateExt/metadata/src/test/org/hibernate/test/annotations/cid/TvMagazinPk.java 2006-03-13 22:52:53 UTC (rev 9613) @@ -0,0 +1,20 @@ +//$Id: $ +package org.hibernate.test.annotations.cid; + +import java.io.Serializable; +import javax.persistence.Embeddable; +import javax.persistence.ManyToOne; +import javax.persistence.JoinColumn; + +/** + * @author Emmanuel Bernard + */ +@Embeddable +public class TvMagazinPk implements Serializable { + @ManyToOne + @JoinColumn(name="chan_id") + public Channel channel; + public String name; + @ManyToOne + public Presenter presenter; +} |