Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/392.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java createAlias/createCriteria休眠内部连接_Java_Oracle_Hibernate - Fatal编程技术网

Java createAlias/createCriteria休眠内部连接

Java createAlias/createCriteria休眠内部连接,java,oracle,hibernate,Java,Oracle,Hibernate,我有两张桌子,父母和孩子。我想在Hibernate条件中使用的查询 SELECT tcr.* FROM case_reminders tcr INNER JOIN case_reminder_opr tco ON tcr.case_id = tco.case_id WHERE tcr.case_status = 'OPN' AND tco.operator_id = 111; 我将标准写为 Criteria ctr = getSession().createCriteri

我有两张桌子,父母和孩子。我想在Hibernate条件中使用的查询

SELECT tcr.*
  FROM case_reminders tcr
 INNER JOIN case_reminder_opr tco ON tcr.case_id = tco.case_id
 WHERE tcr.case_status = 'OPN'
   AND tco.operator_id = 111;
我将标准写为

    Criteria ctr = getSession().createCriteria(CaseReminderOpr.class).add(Restrictions.eq("pk.oprOperatorId", operatorId));
    ctr.createCriteria("pk.crmCaseId", "CR", Criteria.INNER_JOIN).add(Restrictions.eq("CR.caseStatus", STATUS.OPEN.getValue()));
    List<CaseReminderOpr> oprList = ctr.list();

请帮助我进行内部加入查询,再次感谢您的帮助。

更改如下,然后生效。我后来才意识到这一点

在主实体类中将Joincolumn设置为insertable=false,updateable=false

   @Entity
    @Table(name="CASE_REMINDER_OPR")
    public class CaseReminderOpr implements Serializable {
        private static final long serialVersionUID = 1L;

        @EmbeddedId
        private CaseReminderOprPK pk;

        @ManyToOne
        @JoinColumn(name = "CASE_ID", insertable=false, updatable=false)
        private CaseReminders caseRem;
    }
现在,查询应该按预期工作

Criteria ctr = getSession().createCriteria(CaseReminderOpr.class, "CRO").add(Restrictions.eq("pk.oprOperatorId", operatorId));
    ctr.createCriteria("CRO.caseRem", "CR", Criteria.INNER_JOIN).add(Restrictions.eq("CR.caseStatus", STATUS.OPEN.getValue()));
    List<CaseReminderOpr> oprList = ctr.list();
Criteria ctr=getSession().createCriteria(casememendorPr.class,“CRO”).add(Restrictions.eq(“pk.oprOperatorId”,operatorId));
createCriteria(“CRO.caseRem”,“CR”,Criteria.internal_JOIN”).add(Restrictions.eq(“CR.caseStatus”,STATUS.OPEN.getValue());
List-oprList=ctr.List();
希望我能清楚地解释

Criteria ctr = getSession().createCriteria(CaseReminderOpr.class, "CRO").add(Restrictions.eq("pk.oprOperatorId", operatorId));
    ctr.createCriteria("CRO.caseRem", "CR", Criteria.INNER_JOIN).add(Restrictions.eq("CR.caseStatus", STATUS.OPEN.getValue()));
    List<CaseReminderOpr> oprList = ctr.list();