package org.hibernate.test.bytecode.enhancement.join; import java.util.List; import org.hibernate.FetchMode; import org.hibernate.Session; import org.junit.Assert; public class HHH3949TestTask4 extends AbstractHHH3949TestTask { @SuppressWarnings("unchecked") public void execute() { Session session = getFactory().openSession(); session.getTransaction().begin(); List<Vehicle> vehicles = (List<Vehicle>) session.createCriteria( Vehicle.class ) .setFetchMode( "driver", FetchMode.JOIN ) .list(); session.getTransaction().commit(); session.close(); for ( Vehicle vehicle : vehicles ) { if ( shouldHaveDriver( vehicle ) ) { Assert.assertNotNull( vehicle.getDriver() ); Assert.assertNotNull( vehicle.getDriver().getVehicle() ); } } } }