docs

docs

🎯 Spring Framework 講座【第25回】必要なデータだけを取得!〜プロジェクションによる部分データ取得〜

前回、N+1問題を解決するために、JOIN FETCHを使って関連データを一度に取得する方法を学びました。これはパフォーマンスチューニングの強力なテクニックです。しかし、データを大量に取得する際に、もう一つ考慮すべき点があります。それは「本...
docs

⚡️ Spring Framework 講座【第24回】遅延ロードの落とし穴!〜パフォーマンスチューニングとN+1問題〜

前回、JPAのリレーションシップにおいて、パフォーマンス維持のため、関連データの取得を遅らせる LAZY(遅延ロード) フェッチ戦略が推奨されることを学びました。LAZYは非常に便利な機能ですが、使い方を誤ると、アプリケーションの性能を深刻...
docs

🔗 Spring Framework 講座【第23回】テーブル間のつながり!〜JPAのリレーションシップ(関連付け)〜

前回、JPAの @Query アノテーションを使って、複雑なDB検索に対応する方法を学びました。ここまでのEntityの例は、単一のテーブル(例えば Item や User)に焦点を当てていましたが、実際の業務システムでは、複数のテーブルが...
docs

✍️ Spring Framework 講座【第22回】SQLを直接書く!〜Spring Data JPAの@QueryとJPQL〜

前回、Spring Data JPAでは、メソッド名の命名規則に従うだけで、ほとんどの定型的な検索(CRUD)が自動で実現できることを学びました。これは開発の生産性を劇的に向上させます。しかし、以下のようなケースでは、メソッド名によるクエリ...
docs

🔍 Spring Framework 講座【第21回】DB検索を自動化!〜Spring Data JPAのCRUDとカスタム検索〜

前回、JPAの基本概念と、Spring Data JPAによってインターフェースとしてRepositoryを定義するだけで、基本的なDB操作メソッド(save、findByIdなど)が自動生成されることを学びました。この機能のおかげで、私た...
docs

💾 Spring Framework 講座【第20回】DB連携の主役!〜データ永続化の基本とJPA/Hibernate〜

前回、Spring Bootのプロファイル機能を使って、環境ごとに設定を切り替える方法を学びました。これでアプリケーションの**「設定」**も万全です。今回からは、業務システムの根幹であり、最も複雑な領域であるデータベース連携に進みます。J...
docs

⚙️ Spring Framework 講座【第19回】環境ごとに設定を切り替える!〜プロパティ管理とプロファイル〜

前回、Controller、Service、Repositoryの三層構造による業務ロジックの連携を学びました。アプリケーションの骨格はこれで完成です。しかし、実際の業務システムは、「開発環境」「テスト環境」「本番環境」といった複数の環境で...
docs

🏗️ Spring Framework 講座【第18回】ビジネスの心臓部!〜三層構造の連携とService層の役割〜

前回は、ユーザーからの入力を守るためのバリデーションと、その際のエラーを適切に処理するエラーハンドリングについて学びました。これで、アプリケーションの「入り口」は強固になりましたね。今回は、Webアプリケーション設計の基本である三層構造(C...
docs

🛡️ Spring Framework 講座【第17回】システムを不正入力から守る!〜データのバリデーションとエラーハンドリング〜

前回、Controllerでユーザーからのリクエストデータ(@RequestBody や @RequestParam)を受け取る方法を学びました。しかし、送られてくるデータは信用できません。空欄だったり、文字数が多すぎたり、不正な形式だった...
docs

📩 Spring Framework 講座【第16回】ユーザー入力を処理する!〜リクエストパラメータの受け取り方〜

前回は、Controller(コントローラ)を使ってURLとメソッドを結びつけるルーティングの基本を学び、固定の文字列を返すAPIを作成しました。しかし、実際のWebアプリケーションでは、ユーザーがフォームに入力したり、URLに特定の情報を...