次のクエリは、User エンティティからユーザー名を取得します。
String hql = "SELECT userName FROM User WHERE email= :user_email";
Query query = session.createQuery(hql);
query.setParameter("user_email", userSearched );
「query.list()」が返す型は何ですか?
リストを返しますか?
クエリでフィールドを指定します。クエリの結果は Object[] のリストになります。
Mapper を使用して、これらをオブジェクトにマップしたり、インデックスで参照したりできます。
いいえ、戻りますList<Object>
ドキュメントクエリ#リストから
public List list()
throws HibernateException
クエリ結果をリストとして返します。クエリに行の前に複数の結果が含まれる場合、結果は Object[] のインスタンスで返されます。
したがって、以下のコードはオブジェクト リストを返します。
String hql = "SELECT userName FROM User WHERE email='" + userSearched + "'";
List<Object> usersList = sess.createQuery(hql).list();
キャストを入力して作成できますArrayList<User>
String hql = "FROM User WHERE email='" + userSearched + "'"; //changed the query
ArrayList<User> usersList = (ArrayList<User>) sess.createQuery(hql).list();
関係ない
Query#setParameterを使用してパラメーターを設定することをお勧めします。
String hql = "FROM User WHERE email = :userSearched";
ArrayList<User> usersList = (ArrayList<User>) sess.createQuery(hql).setParameter("userSearched",userSearched).list();