Java JPQL多连接查询

Java JPQL多连接查询,java,oracle,jpa,hql,jpql,Java,Oracle,Jpa,Hql,Jpql,有人能帮我吗? 我得到了那个SQL查询,需要在JPQL中表示它,但我遇到了右连接的问题: SELECT alrt.* FROM REACTION.ALERT alrt, REACTION.INVESTIGATION inv, REACTION.CLASSIFICATION_TYPE clst, REACTION.FRAUD_TYPE frt, REACTION.TRANS trns, REACTION.CARD crd WHERE alrt.ISS_INST IN(1201

有人能帮我吗? 我得到了那个SQL查询,需要在JPQL中表示它,但我遇到了右连接的问题:

SELECT alrt.* 
FROM 
 REACTION.ALERT alrt, REACTION.INVESTIGATION inv, 
 REACTION.CLASSIFICATION_TYPE clst, REACTION.FRAUD_TYPE frt, 
 REACTION.TRANS trns, REACTION.CARD crd  
WHERE
  alrt.ISS_INST IN(1201, 1101) AND 
  alrt.MODULE_TYPE = 0 AND 
  0 < (SELECT  COUNT(*) FROM REACTION.INVESTIGATION WHERE REACTION.INVESTIGATION.ALERT_ID = alrt.ID) AND 
  inv.CLASSIFICATION_TYPE_ID IS NOT NULL AND 
  clst.CLASSIFICATION_TYPE = 10 AND 
  (alrt.REMINDER_USER_LOGIN = 'qwr' OR alrt.REMINDER_USER_LOGIN IS NULL) AND 
  alrt.ID = inv.ALERT_ID AND 
  alrt.TRANSACTION_ID = trns.ID(+) AND inv.CLASSIFICATION_TYPE_ID = 
  clst.ID AND inv.FRAUD_TYPE_ID = frt.ID(+) AND trns.HPAN = crd.HPAN(+);
阅读教程和文档后,我创建了JPQL查询:

SELECT alrt
    FROM INVESTIGATION inv
        JOIN inv.CLASSIFICATION_TYPE_ID clst
        RIGHT JOIN inv.FRAUD_TYPE_ID frt
        JOIN inv.alert_id alrt
        RIGHT JOIN alrt.transactio_id trns
        RIGHT JOIN trns.HPAN crd
    WHERE
        alrt.ISS_INST IN(1201, 1101) AND
        alrt.MODULE_TYPE = 0 AND 0 < (SELECT COUNT(inv1) FROM INVESTIGATION inv1 WHERE  inv1.ALERT_ID = alrt.ID) AND
        inv.CLASSIFICATION_TYPE_ID IS NOT NULL AND
        clst.CLASSIFICATION_TYPE = 2 AND
       (alrt.REMINDER_USER_LOGIN =  'qwr' OR alrt.REMINDER_USER_LOGIN IS NULL);
但我犯了错误,然后试着执行。有人能告诉我我做错了什么吗?
如果有意义的话,我使用JPA1.0版本

您的错误是连接ID,而不是映射对象。 试试这个:

JOIN inv.CLASSIFICATIONTYPE(your mapping property name) clst
如果实体之间没有映射关系,最好使用用户连接表i.o.或映射。
阅读有关

的更多信息,您能发布您收到的错误吗?好的,我将添加错误文本一小时,对不起