我有这样的类结构:

Class A {

    private HashMap<\String, B> someFieldMap = // Retrieves some map

    //getter for someFieldMap

    //setter for someFieldMap

}


B是具有以下结构的自定义类。

class B {

    private String type;
    private String value;

    //getters and setters for the above fields

}


现在,我正在尝试编写HQL来检索类B中的值

select value(fieldMap) from A a join a.someFieldMap fieldMap
where index(fieldMap) = 'xyz' //index(fieldMap) will give me the Key of the map.


value(fieldMap)给我实例B的整个对象,因此它将给我类型为B的整个对象。

我想通过select子句选择b.value和b.type。

我尝试了(value(fieldMap))。value,(value(fieldMap))。getValue()但它不起作用。我试图进行搜索,但找不到任何东西。

最佳答案

尝试这个:

SELECT fieldMap.value, fieldMap.type
FROM A a join a.someFieldMap fieldMap
WHERE index(fieldMap) = 'xyz'

关于java - 在select子句中存储在map中的对象的Hibernate获取字段,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22490610/

10-10 04:21