Package org.hibernate.search.test.embedded.doubleinsert

Source Code of org.hibernate.search.test.embedded.doubleinsert.DoubleInsertEmbeddedTest

/*
* 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.embedded.doubleinsert;

import java.util.Date;

import org.apache.lucene.index.Term;
import org.apache.lucene.search.TermQuery;

import org.hibernate.Query;

import org.hibernate.search.FullTextSession;
import org.hibernate.search.Search;
import org.hibernate.search.test.SearchTestBase;
import org.junit.Test;

import static org.junit.Assert.assertEquals;

/**
* @author Emmanuel Bernard
*/
public class DoubleInsertEmbeddedTest extends SearchTestBase {

  @Test
  public void testDoubleInsert() throws Exception {
    PersonalContact contact = createTestData();
    FullTextSession s = Search.getFullTextSession( openSession( ) );
    s.getTransaction().begin();
    Term term = new Term( "county", "county" );
    TermQuery termQuery = new TermQuery( term );
    Query query = s.createFullTextQuery( termQuery );
    assertEquals( 1, query.list().size() );
    contact = (PersonalContact) s.get( PersonalContact.class, contact.getId() );
    contact.getPhoneNumbers().clear();
    contact.getAddresses().clear();
    s.flush();
    s.clear();
    s.createQuery( "delete " + Address.class.getName() ).executeUpdate();
    s.createQuery( "delete " + Phone.class.getName() ).executeUpdate();
    s.createQuery( "delete " + Contact.class.getName() ).executeUpdate();
    s.getTransaction().commit();
    s.close();
  }

  @Test
  public void testMultipleUpdatesTriggeredByContainedIn() {
    PersonalContact contact = createTestData();
    FullTextSession s = Search.getFullTextSession( openSession( ) );
    s.getTransaction().begin();
    contact = (PersonalContact) s.load( PersonalContact.class, contact.getId() );
    contact.setEmail( "spam@hibernate.org" );
    s.getTransaction().commit();
    s.close();
  }

  public PersonalContact createTestData() {
    Address address = new Address();
    address.setAddress1( "TEST1" );
    address.setAddress2( "N/A" );
    address.setTown( "TEST TOWN" );
    address.setCounty( "TEST COUNTY" );
    address.setCountry( "UK" );
    address.setPostcode( "XXXXXXX" );
    address.setActive( true );
    address.setCreatedOn( new Date() );
    address.setLastUpdatedOn( new Date() );

    Phone phone = new Phone();
    phone.setNumber( "01273234122" );
    phone.setType( "HOME" );
    phone.setCreatedOn( new Date() );
    phone.setLastUpdatedOn( new Date() );

    PersonalContact contact = new PersonalContact();
    contact.setFirstname( "Amin" );
    contact.setSurname( "Mohammed-Coleman" );
    contact.setEmail( "address@hotmail.com" );
    contact.setDateOfBirth( new Date() );
    contact.setNotifyBirthDay( false );
    contact.setCreatedOn( new Date() );
    contact.setLastUpdatedOn( new Date() );
    contact.setNotes( "TEST" );
    contact.addAddressToContact( address );
    contact.addPhoneToContact( phone );

    FullTextSession s = Search.getFullTextSession( openSession( ) );
    s.getTransaction().begin();
    s.save( contact);
    s.getTransaction().commit();

    s.close();
    return contact;
  }

  @Override
  protected Class<?>[] getAnnotatedClasses() {
    return new Class[] {
        Phone.class,
        Contact.class,
        PersonalContact.class,
        Address.class,
        BusinessContact.class,
    };
  }
}
TOP

Related Classes of org.hibernate.search.test.embedded.doubleinsert.DoubleInsertEmbeddedTest

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.