package com.example.catchTheLetters.service.impl; import com.example.catchTheLetters.entity.Version; import com.example.catchTheLetters.service.VersionService; import jakarta.annotation.Resource; import org.springframework.data.mongodb.core.MongoTemplate; import org.springframework.data.mongodb.core.query.Criteria; import org.springframework.data.mongodb.core.query.Query; import org.springframework.stereotype.Service; @Service public class VersionServiceImpl implements VersionService { @Resource private MongoTemplate mongoTemplate; @Override public Long getVersion(String tableName) { var res = mongoTemplate.findOne(new Query(Criteria.where("table").is(tableName)), Version.class); return res == null ? null : res.getVersion(); } @Override public void setVersion(String tableName, Long version) { var res = mongoTemplate.findOne(new Query(Criteria.where("table").is(tableName)), Version.class); if (res == null) { mongoTemplate.save(new Version(tableName, version)); } else { res.setVersion(version); mongoTemplate.save(res); } } }