TumblrLombokはとても便利ですよね。Javaで必要だけどあまり書きたくないGetterやSetter、toStringメソッドなどを自動的に生成してくれるので、私は積極的に利用しています。使っていく過程ではまることもあるのですが、最初の頃にはまった内容をまとめます。LombokでStackOverflowLombokを使用していると、処理中に例外が発生した場合など下記のような循環参照でStackOverflowとなることがあります。...発生する原因これは、オブジェクトの循環が原因で発生します。理屈としては以下のケースで発生します。例外が発生時に例外メッセージでtoStringメソッドが呼ばれたときに、該当するオブジェクトに循環したオブジェクトが存在する。LombokでtoStringメソッドを自動生成している。具体的にはというと以下のようなケースが該当します。UserクラスにはGroupという関連が定義されています。group;}つぎに、GroupクラスにはUserクラスの参照を更新ユーザーとして定義しています。updateUser;}このときUserクラスで例外が発生するとします。例外の中ではtoStringメソッドが呼ばれることもありますが、今回は呼ばれるとします。UserクラスのtoStringメソッドを実行すると、Lombokが生成したtoStringメソッドではGroupクラスのtoStringメソッドが実行され流ことになります。すると、GroupクラスのtoStringメソッド内で定義されているupdateUser変数がtoStringメソッドで呼ばれます。このときにはさらにUserクラスのtoStringメソッドを実行することになり次にUserクラスの中にあるGroupクラスのtoStringメソッドが実行される...というように循環するわけです。解決方法さて、この循環参照を避けるための方法です。循環の絶てば良いのでその方法を確認すると、以下の通りLombokに関するアノテーションを循環元のクラス(Userクラス)に設定すればOKです。←ここでtoStringから除外するフィールドを指定する。group;}これで例外が発生したときもStackOverflowにならないので安心です。別な方法として自分でtoStringメソッドを実装するという方法もあります。こちらでは、循環させないようにすれば問題が起こることはありません。SpringBootを始めるならこの書籍がおすすめです。いうか、この書籍しかありません...。見るJPAについて知りたいならこの書籍がおすすめです。»スポンサープロフィール合同会社ビーグルソフトのブログです。設立日は2013年8月21日の会社です。までご連絡をお願い致します。SDKのバージョンを指定するphonelibを利用して電話番号を上手に扱うJavaScriptを利用してPDFに設定するフォントが文字化けするValidationAttributreでDIされたオブジェクトを取得するPostgresでUUIDを生成する注目記事スターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。