在使用带有join的hibernate sql时如何将结果添加到java hashmap?

时间:2013-10-10 11:16:21

标签: java sql hibernate

我找不到适合我的问题的问题,所以我只出现了那个问题。 所以我想将我的查询问题的结果放到hashmap中,我的问题是这样的

import org.hibernate.Query;
private static final String SELECT_MANUFACTURER_PROJECT_DISP_ID = "SELECT O.manufacturers, P.dispid" +
        "FROM offerOrder O" +
        "JOIN offerOrderProjectRel R" +
        "ON O.id = R.offerOrderId" +
        "JOIN project P" +
        "ON P.id = R.projectId" +
        "WHERE O.type = 'ORDER'";
public Map <String,String >createManufacturerProjectDispIdMap() {
    Map<String, String> map = new LinkedHashMap<String, String>();
    Query q = getSession().createQuery(SELECT_MANUFACTURER_PROJECT_DISP_ID);
    return map;
}

正如你可以看到我连接3个表,但我认为这无关紧要。我正确地获得了O.manufacturer和P.dispid,但我不知道如何把它放到像这样的hashmap中

O.manufacturer1 -> P.dispid1
O.manufacturer2 -> P.dispid2
O.manufacturer3 -> P.dispid3
[...]

这是我第一次使用hibernate,这可能就是为什么我有这个问题,我仍然不知道它是如何工作的。对不起我的英语和thx提前给出答案。它不一定是Map<String,String>所以随时给我回答任何地图

1 个答案:

答案 0 :(得分:1)

您可以迭代结果并将自己置于这样的地图中:

Query q = getSession().createQuery(SELECT_MANUFACTURER_PROJECT_DISP_ID);
for(Object o : q.list())
{
   map.put(o.id(), o);
}

干杯!!