I have used @builder anotation of lombok in Product class. But when I use Product.builder(), it's not work. Also, the getter and setter are cannot resolve. I have tried to downgrade some lombok versions, still not working.
This is my code in ProductService:
package dev.beyondnguyen.productservice.service;
import dev.beyondnguyen.productservice.dto.ProductRequest;
import dev.beyondnguyen.productservice.model.Product;
import dev.beyondnguyen.productservice.repository.ProductRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@Service
public class ProductService {
@Autowired
private ProductRepository productRepository;
public void createProduct(ProductRequest productRequest) {
Product product = Product.builder()
.name(productRequest.getName())
.description(productRequest.getDescription())
.price(productRequest.getPrice())
.build();
productRepository.save(product);
log.info("Product {} is saved", product.getId());
}
}
And the code in Product class:
package dev.beyondnguyen.productservice.model;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import java.math.BigDecimal;
@Document(collection = "products")
@NoArgsConstructor
@AllArgsConstructor
@Builder
@Data
public class Product {
@Id
private String id;
private String name;
private String description;
private BigDecimal price;
}
What is happening? How can I fix it?
It can be a problem in your, maven/gradle dependency that you import. Be sure, that project lombok dependency is imported as
Gradle:
Maven:
Something like this. Let me know if it help you.