JPA Repositry で List で返すか、Stream で返すか
2024-12-16


JPA Repository は Java クラスからデータベースへのアクセスを自動化するフレームワーク。実装としては、関数名から SELECT 文の WHERE 句を自動生成したりする。JPA Query Methods の Query Creation にてどの様にSQL が生成されるかが説明されている。

戻ってくるレコードのアクセスも、戻り値にて指定する。複数のレコードを取得する場合は、List か Stream を使う。

Stream は、関数の戻り値が stream なので、逐一、一つずつ処理出来るので、処理効率やメモリ効率では、List よりも良い。しかし、stream は一つずつレコードを処理する為、@Transactional 等を使ってしっかりとトランスアクションを管理する必要があり、若干手間がかかる。List だと、一気に全てのレコードを入手するので、@Transactional は必要ない。、List でも stream() 関数を使って stream 処理が出来るので、リソース管理が主な違い。

Spring Data repository: list vs stream 等でも紹介されている。

[java]
[diary]
[db]

コメント(全0件)
コメントをする


記事を書く
powered by ASAHIネット