Метод save () в JPARepository для обновления существующей сущности в БД. Но как только save () вызван, он удаляет запись - PullRequest
0 голосов
/ 27 февраля 2020

Я использую метод 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);
}
...