Spring boot:无法解析“产品”中的“构建器”方法

问题描述 投票:0回答:1

我在 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;
}

发生了什么事?我该如何解决它?

java spring lombok intellij-lombok-plugin
1个回答
0
投票

这可能是您导入的 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>

类似这样的事情。 如果对您有帮助请告诉我。

© www.soinside.com 2019 - 2024. All rights reserved.