Java 如何使用hibernate条件联接表

Java 如何使用hibernate条件联接表,java,hibernate,criteria,Java,Hibernate,Criteria,我正在尝试使用条件连接多个表,但在这样做时出错。请有人帮我一下好吗 我的代码是 final Session session = getSession(); final Criteria criteria = session.createCriteria(ReferralPaymentInfo.class).createCriteria("SIGNUP_REFERRAL"); System.out.println("before"); List list = criteria.list(); Sy

我正在尝试使用条件连接多个表,但在这样做时出错。请有人帮我一下好吗 我的代码是

final Session session = getSession();
final Criteria criteria = session.createCriteria(ReferralPaymentInfo.class).createCriteria("SIGNUP_REFERRAL");
System.out.println("before");
List list = criteria.list();
System.out.println("after");
我也试过这个代码 最后一次会议=getSession; 最终标准=session.createCriteriaReferralPaymentInfo.class; criteria.setFetchModeSIGNUP\u参考,FetchMode.JOIN; 列表=criteria.List

这只给出了表ReferralPaymentInfo的结果,而不考虑表注册和表引用 谁能帮我一下吗 T

试试这个

DetachedCriteria ownerCriteria = DetachedCriteria.forClass(Owner.class);
    ownerCriteria.setProjection(Property.forName("id"));
    ownerCriteria.add(Restrictions.eq("ownername", "name"));

    Criteria criteria = getSession().createCriteria(Pet.class);
    criteria.add(Property.forName("ownerId").in(ownerCriteria));

你能提供你为之编写这个标准的sql吗?投影用于什么?我以前没有使用过条件查询,但据我所知,你不能使用对表的引用,你必须在条件查询中引用实体。编辑您的问题以将ReferralPaymentInfo放入类中,也许一些了解更多条件查询的人可以帮助您。如果您需要使用对表而不是实体的引用,请使用nativeQuery会话。CreateNativeQueryxxxx;更多信息可以在这里找到