Я использую метод save () JPARepository для обновления существующей сущности в БД. Но как только вызывается save (), он удаляет запись, которая должна быть обновлена.
DummyBo is pojo for DummyEntity
Пожалуйста, обратитесь к описанию таблицы ниже, используя аннотации Springboot, для DummyEntity
@Table(
name = DummyEntity.MYTABLE_TABLE,
uniqueConstraints = @UniqueConstraint(
name = DummyEntity.UNIQUE_CONSTRAINT,
columnNames = {
DummyEntity.NAME_COLUMN,
DummyEntity.VERSION_COLUMN,
DummyEntity.S_GROUP_ID_COLUMN
}
)
)
public PNBo updateEntity(DummyBo dummyBo,
int version, String name, boolean force) {
DummyEntity dummyEntity = this.repository.findByNameAndValidityEndDateIsNull(name);
/*
* DummyEntity dummyEntity =
* this.repository.findByNameAndVersionAndServiceGroupId(name, version,
* dummyBo.getServiceGroup());
*/
if (dummyEntity == null) {
dummyEntity = new DummyEntity();
} else {
List<DummyAndTermEntity> ruleAndTerms = dummyEntity.getRuleAndTerms();
for (DummyAndTermEntity andTermEntity : ruleAndTerms) {
andTermEntity.getOrTerms().clear();
}
dummyEntity.getRuleAndTerms().clear();
}
}
//setting the fields which need to be update
dummyEntity.setName(name);
dummyEntity.setPartNumbers(dummyBo.getPNumber());
dummyEntity.setServiceGroupId(dummyBo.getSGroup());
dummyEntity.setValidityStartDate(dummyBo.getStartDate());
dummyEntity.setValidityEndDate(dummyBo.getEndDate());
dummyEntity.setVersion(version);
//here save method is being called to update the
this.repository.save(dummyEntity);
log.info("Updated successfully!!!Voilaa");
return this.mapper.DummyEntityToPNBo(dummyEntity);
}