У меня есть случай, когда мне нужно использовать один и тот же класс сущностей в нескольких сущностях и создать ассоциацию. У меня есть конечная точка POST, где обрабатываются два разных запроса. При условии, что запрос DTO преобразуется в два разныхОбъекты сущности. Теперь мне нужно добавить новую функциональность к этой конечной точке, что требует от меня добавления новой таблицы. Предположим, что TableA и TableB - это разные права, которые создаются из одного и того же DTO на основе проверки типа. Если DTO имеет определенный флаг как true, он преобразуется в сущность Table A, в противном случае он преобразуется в Table B. В случаях, когда мне нужен список записей в таблице C. Мне нужно добавить список к обоим этим объектам, который вставляется в таблицу C. Итак, мне нужно знать, должен ли я создать для этой цели отдельный объект для таблицы A и таблицы B или могу ли я сослаться на одну и ту же таблицу объектов C, как показано ниже:
Как
@Entity
@Table(name = "TABLE_A")
public class TableA {
....
....
@OneToMany(mappedBy = "tableA ", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)
private List<TableC> tableCLists;
//Getters and Setters
}
@Entity
@Table(name = "TABLE_B")
public class TableB {
...
...
@OneToMany(mappedBy = "tableB", cascade = CascadeType.ALL, orphanRemoval = true, fetch = FetchType.EAGER)
private List<TableC> tableCLists;
//Getters and Setters
}
@Entity
@Table(name = "TABLE_C")
public class TableC {
...
@ManyToOne(optional=false)
@JoinColumn(name="TABLE_A_FIELDID")
public TableA tableA;
@ManyToOne(optional=false)
@JoinColumn(name="TABLE_B_FIELDID")
public TableB tableB;
}