アプリ開発

hibernate入門を読んだ。JPAのN+1問題の解決方法

更新日:

この本をkindleで読んだ。お勧めしておきます。著者はケンブリッジ大学の理系出身。

常にN+1SELECTが悪いわけではなく、むしろいい意味で処理が分散して処理が高速化したり、より安定することもあります。

FetchMode.SELECT

コレクションにアクセスする度にSELECTする。つまり、N+1問題が発生する。

FetchMode.JOIN

OUTER JOINにより、1回でコレクションも取得する。つまり、N+1問題は起きない。

FetchMode.SUBSELECT

関連コレクションは別SELECTで取得する。つまり、N+1は起きない。コレクションの数(コレクション内の要素の数ではない)だけ、SELECTが発行される。

JOINまたはSUBSELECTを使用するには、Criteria API を使用する必要がある。

双方向の関連の設計においては、N+1問題は避けられないことが多々あります。しかし実際問題として、N+1が悪者にされる程なのかというと議論の余地があります。理由としては、サブクエリーやJoin節の処理は早いほうではなく、一つ一つSELECT文でレコードを取得するほうが、高速に処理できることがあります。

N+1問題はJPA関連の記事です必ず目にするが、問答無用で悪いものではない。

【転職のプロが薦める】Web系自社開発のための転職エージェントランキング!

 転職満足度は『「いかに自分の希望にあう、条件のよい」企業から内定が出たか』で決まります。そのため、Web系企業に転職するときのエージェントを選ぶポイントは、「Web系企業の求人」をいくつ持っているかに尽きます。なので、総合大手よりも、Web系企業の求人を多くもつIT専門転職エージェントがオススメです。

ギークリー

  • Web系企業の求人数は9000以上とダントツに多い。
  • 「リクナビNEXTエージェントNetwork」にて、「紹介求人案件満足度部門」「カウンセリング・対応満足度部門」で1位獲得!
  • 「営業が強い」という口コミが多いが、その分熱心に求人を提案してくれる。
  • 無料相談のWEB登録は、履歴書・職務経歴書不要で、たった60秒で超簡単
  • 無料相談は東京・神奈川・埼玉・千葉で勤務できるエンジニアが対象。

レバテックキャリア

  • Web系企業の求人数が4000以上と豊富
  • 「GOOD AGENT AWARD」で「2018年金賞」受賞!
  • 転職業界の人間同士の会話でも、ITといえばレバテックとまず挙がる。
  • 無料相談のWEB登録は、履歴書・職務経歴書不要で、たった60秒で超簡単
  • 無料相談は東京、千葉、埼玉、神奈川、大阪、兵庫、京都、福岡で勤務できるエンジニアが対象。

ワークポート

  • 求人数は2000以上と上2社より少ないが、古くからIT専門として有名。
  • 「GOOD AGENT RANKING」で「転職決定人数部門」第1位獲得!
  • 無料相談のWEB登録は、履歴書・職務経歴書不要で、たった60秒で超簡単

-アプリ開発

Copyright© SIerからWeb系自社開発に転職!失敗して感じたたった1つの後悔 , 2019 All Rights Reserved.