如何将Spring存储库条目的ID设置为精确值?

时间:2018-11-22 15:45:02

标签: java spring

我有一个这样的实体类:

@Getter
@Setter
@Entity
@AllArgsConstructor
public class Employee{
     @Id
     private Long id;
     private String name;
}

和存储库:

public interface EmployeeRepository extends CrudRepository<Employee, Long>{}

现在,在我的服务班级中,我有:

EmployeeRepository employeeRepository;

public void addEmployee(EmployeeForm employeeForm){
//EmployeeForm is simple inteface
    Employee employee = new Employee(employeeForm.getId(), employeeForm.getName());
    employeeRepository.save(employee);
}

这将为员工分配一些ID,而忽略了我从EmployeeForm获得的ID。

因为我需要从其他位置导入员工列表,并且已经为每个员工分配了ID,我该如何EmployeeRepository才能使用我给它的ID注册每个员工?

2 个答案:

答案 0 :(得分:0)

我认为您不见了:雇员实体上的@Entity,另一个应该由它自己完成。 您可以检查long和Long之间的差异,但这不会引起任何问题。

希望这会有所帮助。

答案 1 :(得分:0)

我缺少了@NoArgsConstructor,在邮递员中,我应该完全匹配EmployeeForm中的“ id”。 employeeRepository.save(employee)可以与用户集ID配合使用,但不会覆盖它。