@Test
public void hhh12999TupleLeftJoin() throws Exception {
Session s = openSession();
Transaction tx = s.beginTransaction();
Parent parentWithoutChild = new Parent();
parentWithoutChild.setId( 1L );
Parent parentWithChild = new Parent();
parentWithChild.setId( 2L );
Child child = new Child();
child.id = 123L;
parentWithChild.setChild(child);
s.persist(parentWithChild.getChild());
s.persist(parentWithChild);
s.persist(parentWithoutChild);
s.flush();
CriteriaBuilder cb = s.getCriteriaBuilder();
CriteriaQuery<Tuple> cq = cb.createQuery( Tuple.class );
Root<Parent> parentRoot = cq.from( Parent.class );
Join<Child, Parent> childJoin = parentRoot.join( "child", JoinType.LEFT );
cq.multiselect( parentRoot.get( "id" ), childJoin );
TypedQuery<Tuple> typedQuery = s.createQuery( cq );
List<Tuple> result = typedQuery.getResultList();
assertEquals( 2, result.size() );
assertEquals(2L, result.get( 0 ).get( 0 ));
Child childEntity = (Child) result.get( 0 ).get( 1 );
assertEquals(123L, (long) childEntity.id);
tx.rollback();
s.close();
}