ClassName 类型的 getId() 方法未定义

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

我正在学习Spring boot,遇到了一个问题。我创建了一个费用类,如下所示:

    @AllArgsConstructor
@NoArgsConstructor
@Entity
@Data
@Table(name="expense")
public class Expense {
    @Id
    private Long id;

    private Instant expensedate;

    private String description;

    private String location;

    @ManyToOne
    private Category category;

    @JsonIgnore
    @ManyToOne
    private User user;
}

现在我正在尝试创建一个控制器来添加/删除费用对象。以下方法用于创建费用对象:

@PostMapping("/expenses")
ResponseEntity<Expense> createExpense(@Valid @RequestBody Expense expense) throws URISyntaxException{
    Expense result = expenseRepository.save(expense);
    return ResponseEntity.created(new URI("/api/expense" + result.getId())).body(result);
}

但是在这个方法中我收到以下错误:

Expanse 类型的 getId() 方法未定义

java spring hibernate spring-boot
5个回答
5
投票

你的IDE安装了lombok插件吗?

如果您使用的是 Eclipse:

龙目岛下载页面

如果您使用 Intellij,请在那里找到该插件。


0
投票

尝试在“@Id”下面使用“@GenerateValue”。


0
投票

您可以使用

@Setter @Getter
注释


0
投票

如果以上方法如:

  1. 安装Lombak

  2. 重新启动Eclipse

  3. 清理/构建项目 仍然显示错误,尝试第四件事:

  4. 我删除了@Data的最后一个字符并使用intellisense将其放回去。 Eclipse刷新了项目,getId()就不见了。


0
投票

更新intellij IDEA并重新启动。这可能需要很少的时间。并安装 lombok 插件。它对我有用。

在这里,我遇到了问题:https://www.youtube.com/watch?v=uNC8v-BVLRU&list=PLGRDMO4rOGcNLnW1L2vgsExTBg-VPoZHr&index=6&t=146s

enter image description here

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