gpt4 book ai didi

java - JPA实体设计建议

转载 作者:行者123 更新时间:2023-12-02 00:28:45 25 4
gpt4 key购买 nike

我对JPA有一些疑问。我有一张员工表和项目表。当值保存在 Employee 和 Project 表中时没有关系。首先,管理员应该能够创建员工和项目。后来项目经理将每个员工分配到不同的项目。这里如何将值写入名为employee_project_assignment的表?

employee_id project_id
----------- ----------
100 ABC987
100 DEF876
101 ABC987
102 DEF876

用户界面将如下所示。

当出现 EmployeeProjectAssignment 表单时,项目经理从下拉列表中的不同项目中选择一个项目。他选择了多名他想要参与该项目的员工。在这个方式。那么如何为此 EmployeeProjectAssignment 表单创建实体?

最佳答案

上表是一个纯联接表,用于实现 Employee 和 Project 之间的 ManyToMany 关联。

员工实体可以有项目的集合,和/或项目实体可以有员工的集合(即关系可以是从员工到项目的单向,或从项目到员工的单向,或双向)。

决定哪种关联更适合您的需求(一般来说,双向关联会让生活更轻松)。如果是双向的,请选择哪一侧是关联的所有者(所有者一侧具有 @JoinTable 注释,另一侧具有mappedBy 属性),然后在表单处理方法中填充集合。拥有方是必须填充 JPA 才能持久关联的一方。

假设拥有方是Employee:

employee.getProjects().clear();
employee.getProjects().addAll(projectsSelectedByAdministrator);

关于java - JPA实体设计建议,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9552962/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com