/* * Hibernate Search, full-text search for your domain model * * License: GNU Lesser General Public License (LGPL), version 2.1 or later * See the lgpl.txt file in the root directory or <http://www.gnu.org/licenses/lgpl-2.1.html>. */ package org.hibernate.search.test.proxy; import java.util.HashSet; import java.util.Set; import org.hibernate.Session; import org.hibernate.Transaction; import org.hibernate.search.test.SearchTestBase; import org.junit.Test; /** * @author Hardy Ferentschik */ public class ProxyTest extends SearchTestBase { @Test public void testProxy() throws Exception { Session session = openSession(); Transaction tx = session.beginTransaction(); Book book = new Book( 1, "La chute de la petite reine a travers les yeux de Festina", "La chute de la petite reine a travers les yeux de Festina, blahblah" ); Author author = new Author(); author.setBook( book ); author.setName( "John Doe" ); Set<IAuthor> authors = new HashSet<IAuthor>(); authors.add( author ); book.setAuthors( authors ); session.save( book ); tx.commit(); session.clear(); tx = session.beginTransaction(); IAuthor loadedAuthor = (IAuthor) session.get( Author.class, author.getId() ); //author = (Author) loadedBook.getAuthors().iterator().next(); session.delete( loadedAuthor ); tx.commit(); session.close(); } @Test public void testDeleteProxy() throws Exception { createTestData(); Session s = openSession(); Transaction tx = s.beginTransaction(); IComment c = (IComment) s.get( Comment.class, 2 ); s.delete( c ); tx.commit(); s.close(); } public void createTestData() { Session s = openSession(); Transaction tx = s.beginTransaction(); IProfile p = new Profile(); p.setId( 1 ); s.save( p ); IComment c1 = new Comment(); c1.setId( 2 ); c1.setProfile( (IProfile) s.get( Profile.class, 1 ) ); c1.setContent( "c1" ); c1.setRootComment( null ); s.save( c1 ); IComment c2 = new Comment(); c2.setId( 3 ); c2.setProfile( (IProfile) s.get( Profile.class, 1 ) ); c2.setContent( "c2" ); c2.setRootComment( c1 ); s.save( c2 ); IComment c3 = new Comment(); c3.setId( 4 ); c3.setProfile( (IProfile) s.get( Profile.class, 1 ) ); c3.setContent( "c3" ); c3.setRootComment( c1 ); s.save( c3 ); tx.commit(); s.close(); } @Override public Class<?>[] getAnnotatedClasses() { return new Class[] { Book.class, Author.class, Comment.class, Profile.class }; } }