【发布时间】:2019-10-23 03:28:31
【问题描述】:
我创建了一个带有 MySQL 后端的 Spring Boot JPA 微服务。我的模型中有两个简单的实体,用户和技能。这些用于代表我组织内的技能基础。每个用户可能有很多技能,所以我使用了一对多连接来对此进行建模,并且可以成功地将技能分配给用户。在我的数据库中,我可以看到 JPA 创建了一个 users_skills 表来实现这一点。
但是,我现在正在苦苦挣扎,因为对于用户拥有的每项技能,都需要指定经验级别(例如基本、高级、专家),而我不确定如何实现这一点。我不确定“级别”是否应该只是技能实体中的枚举类型,或者它本身应该是一个单独的实体?我可以配置 JPA 以便它生成一个代表这种三向关系的 users_skills_levels 表吗?任何建议都将受到欢迎!
这些是我的实体类:-
@Entity
@Table(name = "users")
public class User {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private Integer id;
private String name;
private String email;
@OneToMany(
cascade = CascadeType.ALL,
orphanRemoval = true
)
private Set<Skill> skills = new HashSet<>();
getters and setters
}
@Entity
@Table(name = "skills")
public class Skill {
@Id
@GeneratedValue(strategy= GenerationType.IDENTITY)
private Integer id;
private String name;
getters and setters
}
【问题讨论】:
标签: java mysql spring-boot jpa join