update
ステートメントとステートメントが混在してselect
います。update ステートメントはオブジェクトをフェッチしません。したがって、使い方Query#getResultList
は間違っています。Query#executeUpdate
使い勝手が良くなります。
ドキュメントから。
getResultList
java.util.List getResultList() SELECT クエリを実行し、クエリ結果を型なしリストとして返します。戻り値: 結果のリスト
次に、更新が実行される場合、適切な構文は次のステートメントのようになります。
Query query = entityManager.
createQuery("delete from user_tags where tag_id = :tagId and user_id = :userId");
query.setParameter("progId", idStrArray);
query.executeUpdate();
SQL とエンティティを使用して select ステートメントを実行することもできます。Query#setResultTransformer
エンティティ マッピングに使用できます。選択したフィールドとエンティティ マッピングが一致するように注意することが重要です。
Query query = (ProgramAccess)entityManager.
createQuery("Proper select statement which matches with entity mapping.").setResultTransformer(Transformers.aliasToBean(ProgramAccess.class));
query.setParameter("progId", idStrArray);
List<ProgramAccess> list = query.list();
こちらもご覧ください
Query#getResultList()