У меня есть две модели под названием «Согласование и отгрузка». Я определил однонаправленное множество отношений между ними (так как не хочу тесно связанных поставок при сверке) и назвал его ReconShipmentMapped (не модель). Теперь выверка (R1) отображается на несколько отправлений (S1, S2, S3, S4, S5). Я могу установить эту связь, и найдено 5 записей сопоставления R1 в таблице ReconShipmentMapped (которая не является моделью). Теперь я хочу удалить отображение S3 из него. Когда я получаю сопоставленную отгрузку и удаляю из нее S3 и снова сохраняю ее, создается 9 записей в таблице. Я хочу, чтобы только 4 результирующих записи сохранялись в таблице ReconShipmentMapped.
Я упоминаю структуру модели ниже, пожалуйста, помогите мне:
Модель отгрузки
@SuppressWarnings("serial")
@Entity
@Cacheable
@Cache(usage = CacheConcurrencyStrategy.READ_WRITE)
@JsonIgnoreProperties(value = "requestToken")
public class Shipment {
@Column(nullable = false, unique = true)
private String barCode;
@Column(nullable = false, unique = true)
@JsonIgnore
private String referenceId;
@Column
private String droppedBy;
@Column
private String collectedBy;
//getter setter methods
}
Модель сверки
@SuppressWarnings("serial")
@Entity
public class Reconciliation
@Column
@ManyToMany(fetch = FetchType.EAGER)
@JoinTable(name = "ReconShipmentMapped", joinColumns = {
@JoinColumn(name = "payment_recon_id") }, inverseJoinColumns = {
@JoinColumn(name = "shipment_id") })
private Set<Shipment> shipment = new HashSet<Shipment>();