【问题标题】:hql: inner join with Map<key,value> and access key and value in select?hql:与 Map<key,value> 进行内部连接并在选择中访问键和值?
【发布时间】:2010-12-26 08:38:12
【问题描述】:

问题来了

    public class Company
    {
            private Map<Location, Manager> locationManagerMap;
    } 

一个地点只有一名经理。一个经理可以关联到多个位置。

    public class Assignment
    {
            private Location location;
            private Manager
    } 

现在假设我想通过使用带有子查询的 hql 查询来检索公司的所有分配列表,如下所示。

    String query = "select from Assignment as assignment where (assignment.location, assignment.manager) in (select locationManager._____________ from Company as company inner join  company.locationManagerMap as locationManager where company.id=?) "

在上述查询的子查询中,company 与 locationManagerMap 内联。我想访问此映射的键和值以执行多列条件检查。请建议查询中的空格应该是什么语法?

【问题讨论】:

    标签: mysql hibernate map hql inner-join


    【解决方案1】:

    应该是这样的:

    ... index(locationManager), locationManager ...
    

    【讨论】:

    • 在hibernate手册中,无论索引函数被引用到哪里,它都用于List。 index() 函数返回列表中元素的位置,如 1,2,3,... 我怀疑我们是否 index() 是否会在集合 Map 中返回键。您能否给我参考以验证或您自己验证。
    • @Maddy:当我检查它时,它也返回了地图键。
    猜你喜欢
    • 2022-06-12
    • 2012-11-04
    • 2011-12-14
    • 2021-03-10
    • 1970-01-01
    • 2015-10-09
    • 2019-07-13
    • 1970-01-01
    相关资源
    最近更新 更多