Я новичок в Spring Data, и мне нужно установить невозможность создания нового объекта в БД, если объект уже существует с такими же значениями поля.
Условие сравнения: если поле "closeType" и поле соглашения "id" новой сущности равны полям сущности базы данных, я не могу добавить эту сущность в БД.Как это сделать?
Моя сущность:
@Entity
@Table(name = "contract")
@Cache(usage = CacheConcurrencyStrategy.NONSTRICT_READ_WRITE)
public class Contract implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.SEQUENCE, generator = "contractGenerator")
@SequenceGenerator(name = "contractGenerator", sequenceName = "contract_sequence")
private Long id;
@Column(name = "start_date")
private LocalDate startDate;
@Column(name = "end_date")
private LocalDate endDate;
@Column(name = "first_pay_date")
private LocalDate firstPayDate;
@Column(name = "next_pay_date")
private LocalDate nextPayDate;
//Here is thу first field for comparison
@Enumerated(EnumType.STRING)
@Column(name = "close_type")
private CloseType closeType;
@ManyToOne
@JsonIgnoreProperties("")
private Mentor mentor;
//Here is second ID agreement field for comparison
@ManyToOne
@JsonIgnoreProperties("")
private Agreement agreement;
...............
//getters and setters
Мне нужно заблокировать возможность создания нескольких активных контрактов ("closeType") в одном соглашении ("id")