3

次のクエリは、User エンティティからユーザー名を取得します。

String hql = "SELECT userName FROM User WHERE email= :user_email";
Query query = session.createQuery(hql);
query.setParameter("user_email", userSearched );

「query.list()」が返す型は何ですか?

リストを返しますか?

4

5 に答える 5

1

クエリでフィールドを指定します。クエリの結果は Object[] のリストになります。

Mapper を使用して、これらをオブジェクトにマップしたり、インデックスで参照したりできます。

于 2013-11-06T11:05:31.900 に答える
0

いいえ、戻ります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(); 
于 2013-11-06T11:05:08.123 に答える