私は春のブート2.1.4とでシンプルなのREST APIを開発していますGradle 5.0
。私は使用していますLombok v1.18.6
私のクラスを構築することが、私はサービスを呼び出すとき、私は空のオブジェクトを受け付けております
私は手動でgetterとsetterメソッドを追加しようと、それは問題を修正しましたが、私は理由を知りたいのですがlombok
、私のプロジェクトで作業されていません。
また、私のIDEは適切ロンボクplugingを識別しています。私はのIntelliJ IDEAを使用しています
マイGradleの依存関係:
compileOnly 'org.projectlombok:lombok:1.18.6'
annotationProcessor 'org.projectlombok:lombok:1.18.6'
私のモデルクラス:
@Entity
@Data
public class Category implements Serializable {
@Id
@GeneratedValue(strategy = GenerationType.AUTO)
@Column(name = "id_category")
private int idCategory;
@NotBlank
private String name;
@OneToMany(mappedBy = "category", cascade = CascadeType.ALL, orphanRemoval = true)
@JsonProperty(access = JsonProperty.Access.READ_ONLY)
private List<Language> languages;
}
マイRestController:
@RestController
@RequestMapping("/categories")
public class CategoryController {
@Autowired
private CategoryService categoryService;
@GetMapping
public ResponseEntity<List<Category>> findAllCategories(){
List<Category> categories = categoryService.findAll();
return new ResponseEntity<List<Category>>(categories, HttpStatus.OK);
}
}
私はこの応答を受けています:
[
{
"languages": []
}
]
しかし、私が受け取ることを期待していことです。
[
{
"idCategory": 1,
"name": "Backend"
"languages": []
}
]
実は、私が表示されている唯一の属性であることに奇妙な発見languages
があること、@JsonProperty
注釈を、なぜこの出来事はありますか?
更新
私はちょうど私のIDE(IntelliJのは)ロンボクplugingを認識していることを実現し、私はまた、注釈処理が有効になっているが、私はゲッターやセッターを使用して自分のコードをexcecuteしようとすると、エラーがスローされます。
Error:(18, 26) java: cannot find symbol
symbol: method setName(java.lang.String)
location: class com.ramonparis.cvmanager.model.Category
あなたのプロジェクトは、IDEを委任するように設定されていない場合、それはあなたのために働いていないことの理由は、Gradleのと注釈処理に構築されているプロジェクトのために有効になっていない、または何らかの形で間違って設定されています。
[設定] - > [ビルド、実行、展開- >ビルドツール-のGradle - >ランナー
設定- >ビルド、実行、展開- >コンパイラ- >注釈プロセッサ
IntelliJで設定ミスを除外するために、あなたが構築し、コマンドラインからのGradleで実行しようとしたことがありますか?