38 lines
1.2 KiB
Java
38 lines
1.2 KiB
Java
/*
|
|
* DmitriyMX <dimon550@gmail.com>
|
|
* 2017-04-06
|
|
*/
|
|
package kinosearch.kinosearch3.base;
|
|
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.LoggerFactory;
|
|
import org.springframework.data.mongodb.core.MongoOperations;
|
|
import org.springframework.data.mongodb.core.query.Criteria;
|
|
import org.springframework.data.mongodb.core.query.Query;
|
|
|
|
import java.util.List;
|
|
import java.util.regex.Pattern;
|
|
|
|
public class MongoDBRepository implements BaseRepository {
|
|
private final Logger logger = LoggerFactory.getLogger(MongoDBRepository.class);
|
|
private final MongoOperations mongoOperations;
|
|
|
|
public MongoDBRepository(MongoOperations mongoOperations) {
|
|
this.mongoOperations = mongoOperations;
|
|
}
|
|
|
|
@Override
|
|
public List<CinemaDocument> findByTitle(String title) {
|
|
Query query = new Query();
|
|
final String regex = String.format(".*%s.*", Pattern.quote(title));
|
|
query.addCriteria(Criteria.where("title").regex(regex, "i"));
|
|
logger.debug("query: {}", query.toString());
|
|
return mongoOperations.find(query, CinemaDocument.class);
|
|
}
|
|
|
|
@Override
|
|
public void save(CinemaDocument cinemaDocument) {
|
|
mongoOperations.save(cinemaDocument);
|
|
}
|
|
}
|