に、あなたはあなたの本のリストをご希望のリストを取得することができます。
Map<String, Book> booksById = new HashMap<String, Book>(list.size());
for (Object o : list) {
Book book = (Book) o;
booksById.put(book.getId(), book);
}
をそして、ちょうど反復、あなたのIDの配列と同じ順序であなたの本を反復処理するために:
最も簡単な方法は、本のリストをソートすることではなく、マップにそれを変換することではありませんこの配列を通して。正しくNULL値を処理するようにしてください:あなたは、単に再尋ねるあなたのDAOその後、クエリを実行し、できること
for (String id : idList) {
Book book = booksById.get(id);
// make sure book is not null
}
注:それは削除されている場合は、それに対応する本を持っていないIDがあるかもしれませんIDによって各書籍のために、それはとにかくセッションキャッシュにする必要がありますので、:あなたはgetBookList
またはあなたが現時点であるコードのいずれかに記載されているフェッチを並べ替えることができ
BookDao.getInstance().getBookList(idList); // queries for books and populate the session cache
for (String id : idList) {
Book book = BookDao.getInstance().getBookById(id); // no additional query since the book is in cache
// make sure book is not null
}
最後の行で何を意味するのかよく分かりません。何を検索したいですか?あなたはすでにリストを持っています! – adarshr
あなたの質問はまだ明確ではない、あなたはオブジェクトのリストを持っています。あなたは1つを取り出してそのIDを取得しました。そしてそれは配列に渡されます。では、「どのようにリストを取得できますか」という意味はどうですか? – Bitmap
彼は、返された項目をidリストのidと同じid-orderでソートすることを望んでいます – Bohemian