Quantcast
Channel: ソフラボの技術ブログ
Viewing all articles
Browse latest Browse all 166

Domaのエンティティ等にLombokを使うと競合するので注意

$
0
0

SpringBoot+Domaの検証を行っていて、WARファイルでも作ってみるかとGradleからビルドしたら、何回やってもコンパイルエラーになって困った。
いきなりミュータブルとか言われてもよく分からない。

エラー: [DOMA4124]ミュータブルなエンティティクラスは非privateな引数なしのコンストラクタを持たねばなりません。イミュータブルにするには@Entityのimmutable要素にtrueを設定してください。
public class Emp {
       ^
エラー1:compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Compilation failed; see the compiler error output for details.

* Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more l
og output.

BUILD FAILED


Eclipse上ではエラーが出てないのになんで?と思ってググってみたら、次のツイートが目についた。


コンストラクタの自動生成で競合してるようです。
DomaのエンティティクラスにあるLombokの@Dataアノテーションを削除したらビルドできました。


基本的にDomaのエンティティはpublicフィールド対応してるのでLombokは不要です。
SpringBootを検証しているうちにいつのまにかエンティティに@Dataを付与してしまってたみたいです…。


Viewing all articles
Browse latest Browse all 166

Trending Articles