Работая в spring-boot с spring-data и hibernate, у меня есть объект AppUser (это может быть клиент или разработчик, он зависит от роли каждого из них, поэтому у меня есть другая роль объекта ..)
И вмешательство субъекта.
AppUser (когда у него есть роль Client) он может добавлять / удалять one_to_many вмешательство.
AppUser (когда у него есть devlopper роли) он может заниматьone_to_many вмешательства Клиентов (он может подтвердить или нет вмешательство).
Так как у меня есть только один Entity AppUser , определенный ниже:
@Entity
@Data
@AllArgsConstructor @NoArgsConstructor
public class AppUser 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<>();
@OneToMany(mappedBy = "appUser" )
@Fetch(value = FetchMode.SUBSELECT)
@JsonManagedReference(value="appuser-intervention")
private Collection<Intervention> interventions = new
ArrayList<Intervention>();
public void addToInterventions(Intervention intervention){this.interventions.add(intervention);}
public void addToRoles(AppRole role){this.roles.add(role);}
}
Entity Intervention:
@Entity
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Intervention implements Serializable {
@Id @GeneratedValue
private Long Id;
private String objet;
@DateTimeFormat(pattern = "dd/MM/yyyy")
private Date date;
@Column(columnDefinition="BOOLEAN DEFAULT false")
private boolean valid;
@ManyToOne
@JoinColumn(name = "Id_AppUser")
@JsonBackReference(value="appuser-intervention")
private AppUser appUser;
}
Так как существует on_to_many между AppUser (Client, Devlopper) и интервенцией
нужно ли добавить два Списка интервенций в appUser?
А также мне нужно добавить два объекта AppUser в сущности вмешательства?(один для клиента и один для devlopper)?
Или только один список в AppUser и один объект во вмешательстве?
Жду вашей помощи :).
РЕДАКТИРОВАТЬ
@ManyToOne
@JoinColumn(name = "Id_AppUser")
@JsonBackReference(value="appuser-intervention")
private AppUser appClient;
@ManyToOne
@JoinColumn(name ="Id_AppUser")
@JsonBackReference("appuser-intervention")
private AppUser appDevlopper ;