可能是因为您的查询条件不够严格,导致返回了重复的数据。您可以尝试添加更多的查询条件,以确保返回的结果是唯一的。 另外,您还可以使用distinct()方法来去除重复的数据,例如: Criteria criteria = session.createCriteria(Parent.class); criteria.createAlias("children", "c"); criteria.add(Restrictions.eq("c.name", "childName")); criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY); List<Parent> parents = criteria.list(); 这样就可以确保返回的Parent对象是唯一的,不会出现重复数据。