-1

期待している javax.persistence.Query がある場合、値を返す前に、そのサイズが 1 より大きいListことを常に確認します。List例えば

Query q = em.createQuery(sql);

if(q.getResultList().size()<1)
        {
            return new ArrayList();
        }
        else
        {
            return q.getResultList();
        }

サイズを確認するときと、クエリが2回実行されている場合に結果を返すときが気になります。

4

2 に答える 2

3

ドキュメントが言うように、getResultList()クエリを実行します。

代わりにこれを行います:

List results = q.getResultList();
if (results.size() == 0) {
    return Collections.emptyList();
} else {
    return results;
}

もちろん、これが の場合はTypedQuery、ジェネリック部分を追加する必要があります。結果レコードのないクエリから変更不可能な空のリストを返すことをお勧めします。

于 2016-03-01T16:46:59.980 に答える