Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.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/6/ant/2.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
如何将SQL查询转换为JPQL查询?_Sql_Jpql - Fatal编程技术网

如何将SQL查询转换为JPQL查询?

如何将SQL查询转换为JPQL查询?,sql,jpql,Sql,Jpql,我正在寻找如何将以下查询(SQL)转换为查询JPQL SELECT * FROM equipements eq LEFT JOIN check_lists checks ON eq.id_equipements = checks.equipements_id LEFT JOIN responses_check_lists resp ON checks.id_check_lists = resp.check_lists_id AND resp.missions_id = 15 AND eq.

我正在寻找如何将以下查询(SQL)转换为查询JPQL

SELECT * FROM equipements eq
LEFT JOIN check_lists checks
ON eq.id_equipements = checks.equipements_id 
LEFT JOIN responses_check_lists resp 
ON checks.id_check_lists = resp.check_lists_id
AND resp.missions_id = 15 
AND eq.id_equipements = 1 
ORDER BY checks.id_check_lists
我跟踪了internet上的文档,但没有在JPQL中获得查询的正确转换

我知道查询的属性将被类的属性替换

我在这里发表文章是为了帮助我转换SQL查询

Edit1:

@Query(
            "SELECT  r, checks, eq"
            + " FROM Equipements eq"
            + " LEFT JOIN CheckLists checks "
            + " ON eq.idEquipements = checks.equipements.idEquipements"
            + " LEFT JOIN ResponsesCheckLists r"
            + " ON checks.idCheckLists = r.CheckLts.idCheckLists"
            + " AND r.Respmission.idMission= :idmiss "
            + " AND eq.idEquipements= :idEqp"
            + " ORDER BY checks.idCheckLists ASC"
        )
Edit1的错误:

原因:java.lang.IllegalStateException:节点没有数据类型: org.hibernate.hql.internal.ast.tree.IdentNode+-[IDENT]IdentNode: 'r'{originalText=r}

org.hibernate.hql.internal.ast.InvalidPathException:无效路径: “checks.idchecklist”


提前感谢您,

分析您的SQL,在没有看到实体的情况下,您的JPQL可以是这样的:

SELECT eq FROM Equipements eq
LEFT JOIN eq.checks check
LEFT JOIN check.responses resp 
LEFT JOIN resp.missions mission WITH mission.id = :idmiss
WHERE eq.id = :idEqp
ORDER BY check.id

但是,要做到这一点,您需要调整实体的映射(实体名称、列名等)。

分析SQL而不查看实体,您的JPQL可以是这样的:

SELECT eq FROM Equipements eq
LEFT JOIN eq.checks check
LEFT JOIN check.responses resp 
LEFT JOIN resp.missions mission WITH mission.id = :idmiss
WHERE eq.id = :idEqp
ORDER BY check.id

但是,要做到这一点,您需要调整实体的映射(实体名称、列名等)。

请问,如何将SQL转换为JPQL?能否显示映射实体设备、响应检查列表等的代码,如何从SQL转换为JPQL?能否显示映射实体设备、响应检查列表等的代码?