没有映射的HIbernate外连接

时间:2017-03-15 07:44:56

标签: spring hibernate

我有2个表,我正在尝试使用连接而不在类之间进行任何映射 (StData和ApFlow)。我有这样的查询,我在数据库中得到了所需的结果。 是否有可能没有映射,如果是这样的话怎么办。请有人帮助我。 这个查询正在获得QueryException: Unable to resolve path [ApFlow.ApNumber]

session.createQuery("FROM StData "
                + "LEFT OUTER JOIN ApFlow "
                + "ON StData.Apart = ApFlow.Apart and StData.StTitle = ApFlow .StTitle "
                + "WHERE ApFlow.ApNumber= :ApNumber and ApFlow.Apart= :Apart")

        .setParameter("ApNumber",ApNumber)
        .setParameter("Apart", Apart)
        .list();

1 个答案:

答案 0 :(得分:1)

你可以用Hibernate 5.1+做到这一点: Join unrelated entities in JPA

而且,可能需要添加别名

"FROM StData st"
    + "LEFT OUTER JOIN ApFlow flow "
    + "ON st.Apart = flow.Apart and st.StTitle = flow.StTitle "
    + "WHERE flow.ApNumber = :ApNumber and flow.Apart = :Apart"

可以使用交叉产品模拟此查询。但是,请记住,这不是真left joinnull值的原因)。这更像是inner join

"FROM StData st, ApFlow flow"
    + "WHERE st.Apart = flow.Apart and st.StTitle = flow.StTitle "
    + "and flow.ApNumber= :ApNumber and flow.Apart= :Apart"