我在 Product 类中使用了 lombok 的 @builder 注解。但是当我使用 Product.builder() 时,它不起作用。 此外,getter 和 setter 也无法解析。我尝试降级一些lombok版本,仍然不起作用。
这是我在 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());
}
}
Product类中的代码:
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;
}
发生了什么事?我该如何解决它?
这可能是您导入的 maven/gradle 依赖项中的问题。确保项目 lombok 依赖项导入为
摇篮:
compileOnly group: 'org.projectlombok', name: 'lombok', version: 'yourVersionOfLombok'
annotationProcessor 'org.projectlombok:lombok:yourVersionOfLombok'
马夫:
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>yourVersionOfLombok</version>
<scope>provided</scope>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version yourVersionOfLombok</version>
</path>
</annotationProcessorPaths>
类似这样的事情。 如果对您有帮助请告诉我。