JPA Repositry で List で返すか、Stream で返すか2024年12月16日 15時30分45秒

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 等でも紹介されている。

コメント

コメントをどうぞ

※メールアドレスとURLの入力は必須ではありません。 入力されたメールアドレスは記事に反映されず、ブログの管理者のみが参照できます。

※なお、送られたコメントはブログの管理者が確認するまで公開されません。

名前:
メールアドレス:
URL:
コメント:

トラックバック

このエントリのトラックバックURL: http://uyota.asablo.jp/blog/2024/12/16/9740107/tb

※なお、送られたトラックバックはブログの管理者が確認するまで公開されません。