【问题标题】:Hql Fetch: Condition on the right tableHql Fetch:右表的条件
【发布时间】:2013-09-16 13:06:12
【问题描述】:

关于 StackOverflow 的第一个问题!

在 HQL 中,我尝试执行以下查询:

    FROM Device d
    LEFT JOIN FETCH d.listNotifications l
    WITH l.dateLastSending BETWEEN :startDate AND :endDate"
    WHERE d.registerId=:registerId";

但出现以下错误:“在获取的关联中不允许使用带有子句;使用过滤器”

过滤器在我看来有点复杂。

在右表上设置条件有什么问题吗?

问候

【问题讨论】:

    标签: hibernate hql fetching-strategy


    【解决方案1】:

    删除FETCH 子句。

    (或尝试

    FROM Device d
    LEFT JOIN FETCH d.listNotifications l
    WHERE (l.dateLastSending BETWEEN :startDate AND :endDate) AND (d.registerId=:registerId)
    

    )

    【讨论】:

    • 当删除获取错误 Ljava.lang.Object;无法转换为 com.site.project.model.Device
    • 你不能同时使用FETCHWITH。你尝试第二个查询吗?
    • 感谢 U Bellabax。我终于使用了@Filter,因为我必须用一个查询来处理它。
    猜你喜欢
    • 2018-01-19
    • 1970-01-01
    • 1970-01-01
    • 2013-09-15
    • 1970-01-01
    • 2012-11-22
    • 2012-08-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多