1
著者に関連付けられた書籍を見つけるために、著者として整数を渡すときに、どのようにクエリを実行しますか?私は以下のものを私に 'アソシエーションIDではない'としました。これを行う正しい方法は何ですか?hqlの代わりに学習基準、どのようにオブジェクトのリストで条件manytomanyを使用してクエリですか?
また、この多対多は、書籍のauthors属性のアノテーションに基づいて3番目のテーブルを作成しました。望ましい行動
public List<Book> getBooksByAuthorId(int authorId) {
Session session = HibernateUtil.getSession();
Criteria cr = session.createCriteria(Book.class, "book");
cr.createAlias("book.authors", "authors");
cr.createAlias("authors.id", "authid");
cr.add(Restrictions.eq()) //edited after initial post this line should be removed
cr.add(Restrictions.eq("auth.id", authorId));
List<Book> results = cr.list();
session.close();
return results;
}
は、あなたがあなたのクエリで達成しようとしている正確に何を説明することはできますか? 多対多リレーションシップは中間テーブルを使用してマップする必要があるため、取得するビヘイビアは正しいです。 – fg78nc
この場合、int(authorid)の引数、またはそれより優れた文字列を渡すと、その著者に関連付けられている書籍のリストを返したいと思います。だから私はそれらの本のリストを印刷することができます。 – teknotrance
下記の回答をご覧ください – fg78nc