A workaround is to use an alias, as in:
List results = session.createCriteria( Foo.class ) .createAlias( "bar", "b" ) .add( Restrictions.eq("b.id", 1l) ) .list();