Package org.hibernate.test.instrument.cases

Source Code of org.hibernate.test.instrument.cases.TestLazyManyToOneExecutable

package org.hibernate.test.instrument.cases;

import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.Hibernate;
import org.hibernate.test.instrument.domain.Owner;
import org.hibernate.test.instrument.domain.Document;
import org.hibernate.test.instrument.domain.Folder;
import org.hibernate.test.instrument.cases.AbstractExecutable;
import junit.framework.Assert;

/**
* @author Steve Ebersole
*/
public class TestLazyManyToOneExecutable extends AbstractExecutable {
  public void execute() {
    Session s = getFactory().openSession();
    Transaction t = s.beginTransaction();
    Owner gavin = new Owner();
    Document hia = new Document();
    Folder fol = new Folder();
    gavin.setName("gavin");
    hia.setName("Hibernate in Action");
    hia.setSummary("blah");
    hia.updateText("blah blah");
    fol.setName("books");
    hia.setOwner(gavin);
    hia.setFolder(fol);
    fol.getDocuments().add(hia);
    s.persist(gavin);
    s.persist(fol);
    t.commit();
    s.close();

    s = getFactory().openSession();
    t = s.beginTransaction();
    hia = (Document) s.createCriteria(Document.class).uniqueResult();
    Assert.assertEquals( hia.getFolder().getClass(), Folder.class);
    fol = hia.getFolder();
    Assert.assertTrue( Hibernate.isInitialized(fol) );
    t.commit();
    s.close();

    s = getFactory().openSession();
    t = s.beginTransaction();
    hia = (Document) s.createCriteria(Document.class).uniqueResult();
    Assert.assertSame( hia.getFolder(), s.load(Folder.class, fol.getId()) );
    Assert.assertTrue( Hibernate.isInitialized( hia.getFolder() ) );
    t.commit();
    s.close();

    s = getFactory().openSession();
    t = s.beginTransaction();
    fol = (Folder) s.get(Folder.class, fol.getId());
    hia = (Document) s.createCriteria(Document.class).uniqueResult();
    Assert.assertSame( fol, hia.getFolder() );
    fol = hia.getFolder();
    Assert.assertTrue( Hibernate.isInitialized(fol) );
    t.commit();
    s.close();

    s = getFactory().openSession();
    t = s.beginTransaction();
    fol = (Folder) s.load(Folder.class, fol.getId());
    hia = (Document) s.createCriteria(Document.class).uniqueResult();
    Assert.assertNotSame( fol, hia.getFolder() );
    fol = hia.getFolder();
    Assert.assertTrue( Hibernate.isInitialized(fol) );
    s.delete(hia.getFolder());
    s.delete(hia.getOwner());
    t.commit();
    s.close();
  }
}
TOP

Related Classes of org.hibernate.test.instrument.cases.TestLazyManyToOneExecutable

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.