BugHistoryDao.java 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
  1. package edu.nju.dao;
  2. import java.util.ArrayList;
  3. import java.util.List;
  4. import org.springframework.beans.factory.annotation.Autowired;
  5. import org.springframework.data.mongodb.core.MongoOperations;
  6. import org.springframework.data.mongodb.core.query.Criteria;
  7. import org.springframework.data.mongodb.core.query.Query;
  8. import org.springframework.data.mongodb.core.query.Update;
  9. import org.springframework.stereotype.Repository;
  10. import edu.nju.entities.BugHistory;
  11. @Repository
  12. public class BugHistoryDao {
  13. @Autowired
  14. MongoOperations mongoOps;
  15. //save存在则更新,不存在则插入
  16. public void save(BugHistory history){
  17. mongoOps.save(history);
  18. }
  19. //id查询,find查询所有
  20. public BugHistory findByid(String id){
  21. Query query = new Query();
  22. query.addCriteria(Criteria.where("_id").is(id));
  23. List<BugHistory> history = mongoOps.find(query,BugHistory.class);
  24. if(history != null && history.size() != 0) { return history.get(0); }
  25. else { return null; }
  26. }
  27. //查找所有指定的根
  28. public List<String> findRoots(List<String> lists) {
  29. if(lists == null || lists.size() == 0) {return new ArrayList<String>();}
  30. Query query = new Query();
  31. query.addCriteria(Criteria.where("_id").in(lists).and("parent").is("null"));
  32. List<BugHistory> roots = mongoOps.find(query,BugHistory.class);
  33. List<String> ids = new ArrayList<String>();
  34. for(BugHistory root: roots) {
  35. ids.add(root.getRoot());
  36. }
  37. return ids;
  38. }
  39. //查找所有指定节点
  40. public List<BugHistory> findBugHistoryList(List<String> lists) {
  41. Query query = new Query();
  42. query.addCriteria(Criteria.where("_id").in(lists));
  43. List<BugHistory> bugHistories = mongoOps.find(query,BugHistory.class);
  44. return bugHistories;
  45. }
  46. //查找所有的BugRoot
  47. public List<String> findRoots() {
  48. Query query = new Query();
  49. query.addCriteria(Criteria.where("parent").is("null"));
  50. List<BugHistory> roots = mongoOps.find(query,BugHistory.class);
  51. List<String> ids = new ArrayList<String>();
  52. for(BugHistory root : roots) {
  53. ids.add(root.getId());
  54. }
  55. return ids;
  56. }
  57. //根据id删除文档
  58. public void remove(String id){
  59. Query query = new Query();
  60. query.addCriteria(Criteria.where("_id").is(id));
  61. mongoOps.remove(query,BugHistory.class);
  62. }
  63. //根据ids删除文档
  64. public void remove(List<String> ids){
  65. Query query = new Query();
  66. query.addCriteria(Criteria.where("_id").in(ids));
  67. mongoOps.remove(query,BugHistory.class);
  68. }
  69. //根据id查找
  70. public BugHistory findParent(String id){
  71. Query query = new Query();
  72. query.addCriteria(Criteria.where("_id").is(id));
  73. return mongoOps.find(query, BugHistory.class).get(0);
  74. }
  75. //增加child
  76. public void addChild(String id, String child) {
  77. Query query = new Query();
  78. query.addCriteria(Criteria.where("_id").is(id));
  79. BugHistory temp_hisroty = (BugHistory) mongoOps.find(query, BugHistory.class).get(0);
  80. Update update = new Update();
  81. List<String> children = temp_hisroty.getChildren();
  82. if(!children.contains(child)) {children.add(child);}
  83. update.set("children", children);
  84. mongoOps.updateFirst(query,update,BugHistory.class);
  85. }
  86. }