package com.manning.hsia.dvdstore.test;
import java.util.List;
import org.apache.lucene.index.Term;
import org.apache.lucene.search.TermQuery;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.search.Search;
import org.testng.annotations.Test;
import com.manning.hsia.dvdstore.model.Person;
import com.manning.hsia.dvdstore.model.PersonPK;
import com.manning.hsia.dvdstore.util.TestCase;
public class BridgeUseTest extends TestCase {
@Test(groups="ch04")
public void testCompositeIdBridge() throws Exception {
PersonPK emmanuelPK = new PersonPK();
emmanuelPK.setFirstName( "Emmanuel" );
emmanuelPK.setLastName( "Bernard" );
Person emmanuek = new Person();
emmanuek.setAge( 29 );
emmanuek.setId( emmanuelPK );
Session s = factory.openSession();
Transaction tx = s.beginTransaction();
s.save(emmanuek);
tx.commit();
s.clear();
tx = s.beginTransaction();
List results = Search.getFullTextSession( s ).createFullTextQuery(
new TermQuery( new Term("id.lastName", "Bernard" ) ) ).list();
assert 1 == results.size();
emmanuek = (Person) results.get(0);
emmanuek.setAge(30);
tx.commit();
s.clear();
tx = s.beginTransaction();
results = Search.getFullTextSession( s ).createFullTextQuery(
new TermQuery( new Term("id.lastName", "Bernard" ) ) ).list();
assert 1 == results.size();
emmanuek = (Person) results.get(0);
assert 30 == emmanuek.getAge();
s.delete( results.get( 0 ) );
tx.commit();
s.close();
}
}