0

私の問題に対する適切な質問が見つからなかったので、その質問だけを思いつきました。クエリの質問の結果をハッシュマップに入れたいのですが、私の質問は次のようになります

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 を正しく取得していますが、このようにハッシュマップに入れる方法がわかりません

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

休止状態を使用するのはこれが初めてなので、おそらくそれがこの問題を抱えている理由であり、おそらくそれがどのように機能するのかまだわかりません。英語で申し訳ありませんが、事前に答えてください。Map<String,String>地図で答えてください。

4

1 に答える 1

1

結果を反復処理して、次のようなマップに自分自身を配置できます。

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

乾杯 !!

于 2013-10-10T15:35:43.520 に答える