Я работаю над простым приложением, чтобы узнать, как работать с Spring Boot / Hibernate, и я использую Spring Security с системой Role / Users, поэтому у меня есть объект с именем User, другой - с именем Roles.
для моего приложения у меня есть два типа пользователей:
Администратор с атрибутами (идентификатор, имя пользователя, пароль)
клиент с атрибутами (идентификатор, имя пользователя, пароль, адрес электронной почты, номер телефона)
, поэтому я решил использовать концепцию наследования в весенних данных с созданием Entity User с атрибутами (id, username, password) и Client Entity, который наследует Entity User и имеет другие атрибуты (id, email, phoneNumber). ).
в этом приложении клиент может добавлять / удалять / .. некоторые продукты, которые существуют в моей базе данных Mysql, поэтому я хотел реализовать отображение (один ко многим / много к одному) между клиентом объекта и продуктом объекта.
Теперь, как мне реализовать это (СТОРОНА ORM), я имею в виду, должен ли я выполнить сопоставление между объектом Клиент и Продукт ИЛИ между Пользователем и Продуктом?
если есть какое-то другое лучшее решение, я буду очень благодарен :).
РЕДАКТИРОВАТЬ:
@Entity
@Data
@AllArgsConstructor @NoArgsConstructor
public class User implements Serializable {
@Id @GeneratedValue
private Long id;
@Column(unique = true)
private String username;
private String password;
private String prenom;
private String nom;
private Long Tel;
private String CIN;
private String Email ;
@ManyToMany(fetch = FetchType.EAGER)
private Collection<AppRole> roles = new ArrayList<>();
@ManyToOne
@JoinColumn(name="client_id")
private User Client;
@ManyToOne
@JoinColumn(name = "manager_id")
private User Manager;
}