2017-01-06 6 views
-1

Hibernateを使用してデータベースから取得しようとするときに問題があります。私がしようとしているのは、質問リストにタグtagが含まれている(HSQLDBでHibernateを使って)データベースから質問を取り出すことです。ここでエラーがある:claseを使用する際のトラブルWHERE ... IN(リスト)

ここ

06-Jan-2017 19:43:26.021 WARN [http-apr-8080-exec-4] org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions SQL Error: -5585, SQLState: 42585 06-Jan-2017 19:43:26.021 ERROR [http-apr-8080-exec-4] org.hibernate.engine.jdbc.spi.SqlExceptionHelper.logExceptions malformed numeric constant: .

クエリ:

Query query = session.createQuery("FROM Question q WHERE (:someTag) in (q.tagList) ORDER BY (q.creationDate) DESC").setParameter("someTag", tag).setMaxResults(amount); 

そして、ここで完全な方法:

public static List<Question> list(Tag tag, int amount){ 
    Session session = HibernateUtil.getSession(); 
    Query query = session.createQuery("FROM Question q WHERE (:someTag) in (q.tagList) ORDER BY (q.creationDate) DESC").setParameter("someTag", tag).setMaxResults(amount); 
    return query.list(); 
} 

答えて

2

あなたがいるかどうかを確認しようとしている場合は、elements句を使用する必要がありますリストに要素が含まれている場合、クエリは次のようになります。

"FROM Question q WHERE :someTag in elements(q.tagList) ORDER BY (q.creationDate) DESC" 
+0

予期しないトークンがスローされます:CONTAINS – Malvrok

+0

私は答えを更新しました。 –

+0

ありがとうございました!私は3日間これらの問題に取り組んできました! :D – Malvrok

関連する問題