• Java
  • Spring
  • エラー解決
  • 現場メモ
  • クイズ
  • 成長ガイド

学習と現場をつなぐ

ポンコツPdMの開発メモ

お問い合わせはこちら
  • Java
  • Spring
  • エラー解決
  • 現場メモ
  • クイズ
  • 成長ガイド
  • Java
    Javaに関するテーマ
  • Spring
    特にSpringについてはこちら
  • 開発現場メモ
    開発に関するノウハウやメモ

設計・テスト・レビュー

2026/11/4

Spring Bootの@Transactionalはどこに付ける?

AIによる要約Spring Bootの@Transactionalは、基本的にRepositoryではなく、業務処理のまとまりを表すServiceメソッドに付けることが多いです。どこからどこまでを1つの更新単位にするかを決めるためのアノテーションであり、何となく付けるものではありません。 Spring BootでDB更新を扱うと、@Transactionalというアノテーションが出てきます。 初学者は、とりあえずRepositoryや更新メソッドに付ければよいと考えがちですが、現場では「どこからどこまでを ...

Spring BootのDTO変換はどこでやるべきかを解説する記事のアイキャッチ。若手エンジニアがJava道場風の学習空間でDTOとEntityの変換を学ぶイラスト。

設計・テスト・レビュー

2026/11/4

Spring BootのDTO変換はどこでやるべきか

AIによる要約注文の照会・取消では、内部の注文、Serviceの結果、公開JSONを分けます。取消可否を決めるのは業務側で、DTOは決定済みの値を公開する3項目へ変換します。 注文データには、画面へ返さない internalReference があります。一方、APIで公開するのは id、status、cancelable です。 DTO変換の置き場所は、条件の長さより「表示だけを変えるのか、業務上の答えを決めるのか」で考えます。 この記事のポイント APIへ返す項目を3つに絞る 業務上の取消可否をSer ...

Spring BootのRepositoryでよくある戻り値の扱いを解説する記事のアイキャッチ。若手エンジニアがJava道場風の学習空間でOptionalやListを学ぶイラスト。

実装・エラー解決

2026/11/4

Spring Data JPAのRepository戻り値|検索0件・1件・複数件の違い

Spring Data JPAのfindByEmailをOptionalにすれば、見つからないときも安全だと思っていた。ところが同じメールアドレスが2行あった日だけ、利用者の詳細画面がエラーになる。Optionalは「0件でもよい」という表現で、複数件から1件を選ぶ指示でも、重複を防ぐ制約でもありません。検索条件とDBの約束まで揃える必要があります。 この記事でわかること検索結果が0件・1件・2件のとき、Optional・単一Entity・Listがそれぞれ何を返すか。「見つからない」が正常な検索と、必須 ...

Spring BootのControllerでやってはいけないことを解説する記事のアイキャッチ。若手エンジニアがJava道場風の学習空間でControllerとServiceの責務分離を学ぶイラスト。

設計・テスト・レビュー

2026/11/4

Spring BootのControllerでやってはいけないこと

AIによる要約ControllerはURLから注文IDを受け取り、Serviceへ渡し、結果をJSONとHTTPステータスに変えます。注文取消で、入口での400、業務結果に基づく404と409、成功の200を見分けます。 注文100は出荷待ち、101は出荷済み、102は取消済みです。URLのIDが文字列で数値にできない場合と、数値だが取消できない場合は、同じ失敗でも処理が止まる場所が違います。 同じ注文取消の例で、Controllerに残す条件とServiceへ移す条件を分けます。 この記事のポイント U ...

Javaのequalsをオーバーライドするときの注意点を解説する記事のアイキャッチ。Java道場風の学習空間で若手エンジニアが同一判定を学ぶイラスト。

設計・テスト・レビュー

2026/11/5

Javaのequalsをオーバーライドする注意点

AIによる要約Javaでequalsをオーバーライドするときは、単にIDEで生成すればよいわけではありません。何を同じとみなすのか、hashCodeと揃っているか、変更される値を比較に使っていないかを確認する必要があります。 equalsは、オブジェクト同士を「同じものとして扱うか」を決めるメソッドです。 現場では、ID、コード値、注文番号など、業務上の同一性を表すクラスでよく話題になります。 この記事のポイント equalsは同一判定のルールを表す オーバーライドするならhashCodeもセットで考える ...

Lombokの使い方と@Dataの危険性を解説する記事のアイキャッチ。Java道場風の学習空間で若手エンジニアがアノテーションの選び方を学ぶイラスト。

実装・エラー解決

2026/11/4

Lombokの@Dataが危険な場面|ログ出力とHashSetの不具合を再現

@Dataを付けた利用者クラスをログ出力すると、表示したつもりのなかったpasswordHashまで文字列になります。さらに、そのクラスをHashSetへ入れてから表示名を変えると、同じオブジェクトなのにcontainsがfalseになることがあります。二つとも、ソースに書いていない生成メソッドがクラスの使い方に影響した例です。 この記事でわかること@Dataが実際に生成したtoString・equals・hashCodeの読み方。集合に残っているオブジェクトを、変更後に検索できなくなる再現手順。表示して ...

JavaのSetで重複削除できない原因をequalsとhashCodeから解説する記事のアイキャッチ。Java道場風の学習空間で若手エンジニアがHashSetを学ぶイラスト。

実装・エラー解決

2026/11/5

Setで重複削除できない原因をJavaで解説

AIによる要約JavaのSetは重複を持たないコレクションですが、自作クラスを入れたときに期待通り重複削除されないことがあります。原因の多くは、equalsとhashCodeの実装、または何を重複とみなすかの設計です。 Setは重複を許さないコレクションです。文字列や数値なら、直感通りに重複が消えることが多いです。 しかし、自分で作ったクラスをHashSetに入れると、同じ内容に見えるのに重複が残ることがあります。 この記事のポイント Setの重複判定はequalsとhashCodeに依存する 自作クラス ...

HashMapで値が取れない原因をequalsとhashCodeから解説する記事のアイキャッチ。Java道場風の学習空間で若手エンジニアがMapのキーを学ぶイラスト。

実装・エラー解決

2026/11/5

HashMapで値が取れない原因はequalsかも

AIによる要約HashMapに値を入れたのにgetで取れない場合、キーに使っているクラスのequalsとhashCodeが原因かもしれません。この記事では、初学者向けにMapの仕組みと現場で起きる失敗を整理します。 業務システムでは、ユーザーID、商品コード、注文番号などをキーにしてHashMapへ値を入れることがあります。 ところが、自分で作ったクラスをキーにした瞬間に、putした値がgetできない問題が起きることがあります。 HashMapはキーをhashCodeとequalsで探す 同じ値に見えても ...

JavaのequalsとhashCode入門を解説する記事のアイキャッチ。若手エンジニアがJava道場風の学習空間でオブジェクト比較を学ぶイラスト。

実装・エラー解決

2026/11/4

JavaのequalsとhashCode入門

AIによる要約equalsはオブジェクトの同一性を判断する重要なメソッドですが、hashCodeとセットで考えないとHashSetやHashMapで不具合につながります。この記事では、初学者がつまずきやすい理由を現場目線で整理します。 前回の文字列比較では、==ではなくequalsを使う話をしました。 次に現場で出てくるのが、自分で作ったクラスのequalsとhashCodeです。 この記事のポイント equalsは「同じ値として扱うか」を決める hashCodeはHashSetやHashMapの探索に使 ...

Javaのfor文とStreamの使い分けを解説する記事のアイキャッチ。若手エンジニアがJava道場風の学習空間で繰り返し処理を学ぶイラスト。

実装・エラー解決

2026/11/5

Javaのfor文とStreamの使い分け

AIによる要約Javaには通常のfor文、拡張for文、Streamなど複数の繰り返し処理があります。どれが正解かは場面によります。この記事では、初学者が迷いやすい使い分けを、現場の可読性とデバッグしやすさの観点で整理します。 Javaのコレクション処理では、同じ結果を複数の書き方で実現できます。 初学者が迷いやすいのは、for文が古くて、Streamが常に良い書き方に見えることです。 この記事のポイント 単純な繰り返しは拡張for文で十分なことが多い 抽出・変換・集計はStreamが読みやすい場合がある ...

« Prev 1 … 11 12 13 14 15 … 19 Next »
プロフィール画像

ポンコツPdM

SIerでの開発・プロジェクト運営の経験をもとに、Java・Springの実装、設計・テスト、チーム開発で役立つ手順をまとめています。

    START HERE初めての方へ

    Java・Springの実装、テスト、レビューで迷ったときに。今の課題から記事を探し、次に学ぶことを整理できます。

    成長ロードマップを見る →
    FIND YOUR TOPICよくある困りごと
    • エラー・実装で詰まったとき →
    • 設計・テスト・レビューを学ぶ →
    • 仕事・チーム開発で迷ったら →
    広告
    NEXT BOOKSHELF学習段階ごとの本棚

    いま伸ばしたい力に合わせて、次の1冊を選べます。

    • 01 / 初心者Java・Git・SQLの土台 →
    • 02 / 脱初心者Web機能をひとりで作る →
    • 03 / 実務担当設計・テスト・レビュー →
    • 04 / リーダー候補要件整理・チーム判断 →

    ※当サイトはAmazonアソシエイト・プログラムの参加者です。リンク先で価格・在庫をご確認ください。

    人気記事

    • Springで「NoUniqueBeanDefinitionException」が出たときの対策 - 49,743 ビュー
    • 業務用のシステムにおいてクラス設計(分割)をどのように考えるか-1 - 47,182 ビュー
    • Spring Data Jpaと@Entityを使って複数テーブルで共通の値を親クラスにまとめて... - 43,468 ビュー
    • 免責事項
    • 著作権について
    • 学習ガイド
    • プライバシーポリシー
    • リンクについて

    学習と現場をつなぐ

    ポンコツPdMの開発メモ

    © 2026 ポンコツPdMの開発メモ