Я создал микро сервис Spring Boot JPA с серверной частью MySQL.У меня есть две простые сущности в моей модели: пользователи и навыки.Они используются для представления базы навыков в моей организации.У каждого пользователя может быть много навыков, поэтому я использовал соединение один ко многим, чтобы смоделировать это, и могу успешно назначать навыки пользователям.В моей базе данных я вижу, что JPA создала таблицу users_skills для достижения этой цели.
Однако я сейчас изо всех сил, потому что для каждого навыка, который имеет пользователь, необходимо указать уровень опыта (например, базовый, продвинутый, эксперт), и я не уверен, как этого добиться.Я не уверен, должны ли «уровни» быть просто типом enum в сущности Skill, или, возможно, это должна быть отдельная сущность сама по себе?Могу ли я настроить 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
}