我有一个小组类(class):
@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 接口(interface):
public interface GroupRepository extends JpaRepository<Group, Long> {
Group findByName(String name);
}
用于加载数据的初始化器类:
@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:Eclipse
- Java:1.8
为什么我在 repository.save(new Group(name)));
上遇到错误以及如何解决它?
错误: 构造函数 Group(name) 未定义。
注意:虽然我使用 lombok 并在 Group 类的名称字段中添加了 @NotNull
。
最佳答案
我认为Lombok不支持@NotNull,你需要将字段设为final或使用Lombok的@NonNull。
关于java - @RequiredArgsConstructor 不生成构造函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60970204/