Blame view

src/main/java/com/objecteye/dao/MongoTemplates.java.old 3.82 KB
c83b5b39   Liu Haoyu   项目创建, 集成spring-se...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
  package com.objecteye.dao;
  
  import org.springframework.beans.factory.annotation.Autowired;
  import org.springframework.data.mongodb.core.MongoTemplate;
  import org.springframework.data.mongodb.core.geo.GeoJson;
  import org.springframework.data.mongodb.core.query.Criteria;
  import org.springframework.stereotype.Component;
  
  import java.util.List;
  
  @Component
  public class MongoTemplates {
      @Autowired
      private MongoTemplate mongoTemplate;
  
      public void save(Polygon polygon){
          mongoTemplate.save(polygon);
      }
  
      public void saveRegions(List<GisRegion> gisRegionList){
          mongoTemplate.insert(gisRegionList,GisRegion.class);
      }
  
      public <T> T findById(Class<T> entityClass, String id) {
          return mongoTemplate.findById(id, entityClass);
      }
  
      public <T> List<T> findAll(Class<T> entityClass) {
          return mongoTemplate.findAll(entityClass);
      }
  
      public <T> void remove(T entity) {
          mongoTemplate.remove(entity);
      }
  
      public <T> void add(T entity) {
          mongoTemplate.insert(entity);
      }
  
      public <T> void addAll(List<T> entity) {
          mongoTemplate.insertAll(entity);
      }
  
      public <T> void saveOrUpdate(T entity) {
          mongoTemplate.save(entity);
      }
  
      public <T> T findOne(Class<T> entityClass) {
          return mongoTemplate.findOne(new Query(), entityClass);
      }
  
      public List<Polygon> findIntersective(GeoJson geoJson){
          Query query=new Query(Criteria.where("geometry").intersects(geoJson));
          List<Polygon> list=mongoTemplate.find(query,Polygon.class);
          return list;
      }
  
      public boolean isExistIntersective(GeoJson geoJson){
          Query query=new Query(Criteria.where("geometry").intersects(geoJson).and("_id").is(100000));
          boolean res=mongoTemplate.exists(query,GisRegion.class);
          return res;
      }
  
       /*public <T> T findBy(Class<T> entityClass, String id) {
  
              Criteria cri = new Criteria();
              // 设置条件(注意:设置查询的值类型必须和mongodb中类型一致)
              cri.and("status").is("0"); // 类型为String,类似sql中 status = '0'
              cri.and("boolRelation").is(0D); // 类型为Double,类似sql中 boolRelation = 0
              cri.and("enforType").regex("01.*"); // 正则表达匹配,类似右模糊查询,sql中 like '01%'
  
      //        lt gt lte gte
  
              return null;
          }*/
  
          //mongodb查询根据指定条件对象
         /* public <T> T findQuery(Class<T> entityClass, BasicDBObject basicDBObject) {
      //       分、 排序、按时间查询
  
              Query query = new Query();
              //必须条件
      //        Criteria c = Criteria.where("VINID").is(Map.get(vin));
              Criteria c = new Criteria();
              //范围条件
              if (!StringUtils.isEmpty(start) && StringUtils.isEmpty(end)) {
                  c.and("TIME1").gte(GetTime1(start));
              } else if (StringUtils.isEmpty(start) && !StringUtils.isEmpty(end)) {
                  c.and("TIME1").lte(GetTime1(end));
              } else if (!StringUtils.isEmpty(start) && !StringUtils.isEmpty(end)) {
                  //对同一个属性加两次限制需这样操作
                  c.andOperator(
                          c.where("TIME1").gte(GetTime1(start)),
                          c.where("TIME1").lte(GetTime1(end))
                  );
              }
              query.addCriteria(c);
              //总数
              int num = (int) mongoTemplate.count(query, CarDataEx.class, "jmevTest");
              System.out.println("总数:" + num);
              //分页
              query.skip((page - 1) * rows).limit(rows);
              //排序
              query.with(new Sort(Sort.Direction.DESC, "TIME1","TIME2"));
              //query.with(new Sort(properties));
              List<T> jmevTest = (List<T>) mongoTemplate.find(query, CarDataEx.class, "jmevTest");
          }*/
  
  }