繁体   English   中英

如何将对象保存到另一个表Springboot

[英]How to save object to another table Springboot

我想选择随机员工作为当月员工。 它工作正常。 但我想将该选定的员工保存到另一个名为 EmployeeOfMonth 的表中。 我该怎么做,我需要使用查询吗? 我需要另一个存储库吗? 在这里应该采取什么方法?

员工存储库:

 EmployeeDTO selectEmployee(Employee employee);

员工服务:

 EmployeeDTO selectEmployee(Employee employee);

员工服务小鬼:

 @Override
    public EmployeeDTO selectEmployee(Employee employee) {
        List<Employee> all = employeeRepository.findAll();
        Random randomizer = new Random();
        Employee random = all.get(randomizer.nextInt(all.size()));

            return EmployeeMapper.toDto(random);
        }

控制器 :

@GetMapping(path="/month")
    public EmployeeDTO selectEmployee(Employee employee){
        return employeeService.selectEmployee(employee);
    }

创建另一个名为 EmployeeOfMonths 的实体或表添加诸如员工 ID 和月份之类的属性。 选择您的员工后,填充此实体,然后保存。 因此,我们没有复制员工数据,而是将其引用到员工表。 要获取有关当月员工的更多详细信息,您可以使用 EmployeeofMonths 表中的员工 ID 查询员工表。

@Entity
public class EmployeeOfMonths{
   @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
   private Integer id;
   private employeeId;
    @Column(name = "created_at", nullable = false, updatable = false)
    @Temporal(TemporalType.TIMESTAMP)
    @CreatedDate
    private Date created_at;
}

编辑

我认为一名员工可以成为每月多次的员工。 在这种情况下,它将是一对多的。

@OneToMany(mappedBy = "employee", cascade=CascadeType.ALL)
private List<EmployeeOfMonths> employeeOfMonths;

并为员工月。

@ManyToOne
@JoinColumn(name="id", referncedColumnName="employeeId")
private Employee employee;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM