java - @RequiredArgsConstructor 不生成构造函数
问题描述
我有一个小组课程:
@Data
@NoArgsConstructor
@RequiredArgsConstructor
@Entity
public class Group {
@Id
@GeneratedValue
private Long id;
@NotNull
private String name;
private String address;
private String city;
private String stateOrProvince;
private String country;
private String postalCode;
@ManyToOne(cascade = CascadeType.PERSIST)
private User user;
@OneToMany(fetch = FetchType.EAGER, cascade = CascadeType.ALL)
private Set<Event> event;
}
一个 GroupRepository 接口:
public interface GroupRepository extends JpaRepository<Group, Long> {
Group findByName(String name);
}
用于加载数据的 Initializer 类:
@Component
public class Initializer implements CommandLineRunner {
private final GroupRepository repository;
public Initializer(GroupRepository groupRepository) {
this.repository = groupRepository;
}
@Override
public void run(String... args) throws Exception {
Stream.of("Denver JUG", "Utah JUG", "Seattle JUG",
"Richmond JUG").forEach(name ->
repository.save(new Group(name)));
}
}
规格:
- IDE:日食
- 爪哇:1.8
为什么我收到错误repository.save(new Group(name)));
以及如何解决?
错误: The constructor Group(name) is undefined.
注意:虽然我使用的是 lombok 并@NotNull
在 Group 类中添加了 name 字段。
解决方案
我认为 Lombok 不支持 @NotNull,您需要将字段设为 final 或使用 Lombok 的 @NonNull。
推荐阅读
- markdown - 将多个章节拼接在一起,每个章节都有一个 % 标题
- c# - C#:为什么字符串和列表不支持序列化?
- reactjs - 在 componentDidMount 中模拟 API 调用方法
- scala - Flink AssignerWithPeriodicWatermarks getCurrentWatermark 永远不会被调用
- angular - 如何在Angular中显示文本区域内的当前字符数?
- azure-durable-functions - 使用持久实体是存储工作流结果的好方法吗?
- bootstrap-4 - Bootstrap 4 导航栏,带有居中的文本简介
- esp32 - 最大 tcp 客户端连接数不增加
- oracle - 具有 2 个不同数据库(Oracle 和 postgresql)的 Jasper 报告
- python - 递归跳跃游戏