@Test
public void test() {
Company company = new Company();
Department department = new Department();
Employee employee = new Employee();
employee.department = department;
department.company = company;
session.save(company);
session.save(department);
session.save(employee);
session.flush();
session.clear();
Company c = Alias.alias(Company.class);
Department d = Alias.alias(Department.class);
Employee e = Alias.alias(Employee.class);
assertEquals(1l, session.from($(c)).count());
assertEquals(1l, session.from($(d)).count());
assertEquals(1l, session.from($(e)).count());
assertEquals(1l, session.from($(d)).where($(d.getCompany()).eq(company)).count());
assertEquals(1l, session.from($(d)).where($(d.getCompany()).eq(company)).count());
assertEquals(1l, session.from($(e)).where($(e.getDepartment()).eq(department)).count());
assertEquals(1l, session.from($(c)).where($(c.getDepartment()).eq(department)).count());
assertEquals(1l, session.from($(c)).where($(c.getDepartments()).contains(department)).count());
assertEquals(1l, session.from($(d)).where($(d.getEmployees()).contains(employee)).count());
}