[hibernate-commits] Hibernate SVN: r18510 - core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded.
hibernate-commits at lists.jboss.org
hibernate-commits at lists.jboss.org
Mon Jan 11 20:16:55 EST 2010
Author: smarlow at redhat.com
Date: 2010-01-11 20:16:55 -0500 (Mon, 11 Jan 2010)
New Revision: 18510
Added:
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/FavoriteThings.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/InternetFavorites.java
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/URLFavorite.java
Modified:
core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/EmbeddedTest.java
Log:
HHH-4598 An embeddable class may contains collection of basic types or embeddable objects
Modified: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/EmbeddedTest.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/EmbeddedTest.java 2010-01-11 23:46:47 UTC (rev 18509)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/EmbeddedTest.java 2010-01-12 01:16:55 UTC (rev 18510)
@@ -2,6 +2,9 @@
package org.hibernate.test.annotations.embedded;
import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -415,6 +418,68 @@
s.close();
}
+ // make sure we support collection of embeddable objects inside embeddable objects
+ public void testEmbeddableInsideEmbeddable() throws Exception {
+ Session s;
+ Transaction tx;
+
+ Collection<URLFavorite> urls = new ArrayList<URLFavorite>();
+ URLFavorite urlFavorite = new URLFavorite();
+ urlFavorite.setUrl( "http://highscalability.com/" );
+ urls.add(urlFavorite);
+
+ urlFavorite = new URLFavorite();
+ urlFavorite.setUrl( "http://www.jboss.org/" );
+ urls.add(urlFavorite);
+
+ urlFavorite = new URLFavorite();
+ urlFavorite.setUrl( "http://www.hibernate.org/" );
+ urls.add(urlFavorite);
+
+ urlFavorite = new URLFavorite();
+ urlFavorite.setUrl( "http://www.jgroups.org/" );
+ urls.add( urlFavorite );
+
+ Collection<String>ideas = new ArrayList<String>();
+ ideas.add( "lionheart" );
+ ideas.add( "xforms" );
+ ideas.add( "dynamic content" );
+ ideas.add( "http" );
+
+ InternetFavorites internetFavorites = new InternetFavorites();
+ internetFavorites.setLinks( urls );
+ internetFavorites.setIdeas( ideas );
+
+ FavoriteThings favoriteThings = new FavoriteThings();
+ favoriteThings.setWeb( internetFavorites );
+
+ s = openSession();
+
+ tx = s.beginTransaction();
+ s.persist(favoriteThings);
+ tx.commit();
+
+ tx = s.beginTransaction();
+ s.flush();
+ favoriteThings = (FavoriteThings) s.get( FavoriteThings.class, favoriteThings.getId() );
+ assertTrue( "has web", favoriteThings.getWeb() != null );
+ assertTrue( "has ideas", favoriteThings.getWeb().getIdeas() != null );
+ assertTrue( "has favorite idea 'http'",favoriteThings.getWeb().getIdeas().contains("http") );
+ assertTrue( "has favorite idea 'http'",favoriteThings.getWeb().getIdeas().contains("dynamic content") );
+
+ urls = favoriteThings.getWeb().getLinks();
+ assertTrue( "has urls", urls != null);
+ URLFavorite[] favs = new URLFavorite[4];
+ urls.toArray(favs);
+ assertTrue( "has http://www.hibernate.org url favorite link",
+ "http://www.hibernate.org/".equals( favs[0].getUrl() ) ||
+ "http://www.hibernate.org/".equals( favs[1].getUrl() ) ||
+ "http://www.hibernate.org/".equals( favs[2].getUrl() ) ||
+ "http://www.hibernate.org/".equals( favs[3].getUrl() ));
+ tx.commit();
+ s.close();
+ }
+
public EmbeddedTest(String x) {
super( x );
}
@@ -431,7 +496,8 @@
InternetProvider.class,
CorpType.class,
Nationality.class,
- Manager.class
+ Manager.class,
+ FavoriteThings.class
};
}
}
Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/FavoriteThings.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/FavoriteThings.java (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/FavoriteThings.java 2010-01-12 01:16:55 UTC (rev 18510)
@@ -0,0 +1,34 @@
+package org.hibernate.test.annotations.embedded;
+
+import javax.persistence.Embedded;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+/**
+ * Has collection of embeddable objects inside embeddable objects for testing HHH-4598
+ */
+
+ at Entity
+public class FavoriteThings {
+ @Id
+ int id;
+
+ @Embedded
+ InternetFavorites web;
+
+ public InternetFavorites getWeb() {
+ return web;
+ }
+
+ public void setWeb(InternetFavorites web) {
+ this.web = web;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public void setId(int id) {
+ this.id = id;
+ }
+}
Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/InternetFavorites.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/InternetFavorites.java (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/InternetFavorites.java 2010-01-12 01:16:55 UTC (rev 18510)
@@ -0,0 +1,32 @@
+package org.hibernate.test.annotations.embedded;
+
+import javax.persistence.Embeddable;
+import javax.persistence.Embedded;
+import java.util.Collection;
+
+ at Embeddable
+public class InternetFavorites {
+
+ @Embedded
+ Collection<URLFavorite> links;
+
+ @Embedded
+ Collection<String> ideas;
+
+ public Collection<String> getIdeas() {
+ return ideas;
+ }
+
+ public void setIdeas(Collection<String> ideas) {
+ this.ideas = ideas;
+ }
+
+ public Collection<URLFavorite> getLinks() {
+
+ return links;
+ }
+
+ public void setLinks(Collection<URLFavorite> links) {
+ this.links = links;
+ }
+}
Added: core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/URLFavorite.java
===================================================================
--- core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/URLFavorite.java (rev 0)
+++ core/trunk/annotations/src/test/java/org/hibernate/test/annotations/embedded/URLFavorite.java 2010-01-12 01:16:55 UTC (rev 18510)
@@ -0,0 +1,17 @@
+package org.hibernate.test.annotations.embedded;
+
+import javax.persistence.Embeddable;
+
+ at Embeddable
+public class URLFavorite {
+
+ private String url;
+
+ public String getUrl() {
+ return url;
+ }
+
+ public void setUrl(String url) {
+ this.url = url;
+ }
+}
More information about the hibernate-commits
mailing list