Java 从hibernate查询返回映射
在下面关于传递办公室代码列表的查询中,我得到了countryID的列表。现在,我需要一个地图,其中的键是countryID,其值作为办公室代码列表。你能帮帮我吗 示例:如果我们的办事处为abc,def属于国家123,xyz属于789,我需要一张类似 (123,列表(abc,def)…(789,列表(xyz))Java 从hibernate查询返回映射,java,hashmap,Java,Hashmap,在下面关于传递办公室代码列表的查询中,我得到了countryID的列表。现在,我需要一个地图,其中的键是countryID,其值作为办公室代码列表。你能帮帮我吗 示例:如果我们的办事处为abc,def属于国家123,xyz属于789,我需要一张类似 (123,列表(abc,def)…(789,列表(xyz)) 执行以下查询: select distinct abc.countryID, abc.officeCode from SomeEntity abc where abc.officeCode
执行以下查询:
select distinct abc.countryID, abc.officeCode from SomeEntity abc where abc.officeCode in (:codes)
此查询将返回一个列表
,每个对象数组包含一个countryID作为第一个元素,一个office代码作为第二个元素
然后遍历列表,并填充地图
注意:使用StringBuffer连接字符串文字会适得其反,并且可读性较差。你最好简单地做:
String queryString = "select distinct (abc.countryID) from com.#####.TABLE table"
+ " where table.officeCode in (:oCode)";
感谢您建议不要使用StringBuffer。我有一个.list();在代码的末尾。这会保持现状吗?拥有它有什么用?
.list()
执行查询并返回结果列表。一旦有了此列表,就可以将其转换为地图。
String queryString = "select distinct (abc.countryID) from com.#####.TABLE table"
+ " where table.officeCode in (:oCode)";