1 6 7 package org.contineo.documan.dao; 8 9 import java.util.Collection ; 10 import org.apache.log4j.Level; 11 import org.apache.log4j.Logger; 12 import org.apache.ojb.broker.PBKey; 13 import org.apache.ojb.broker.PersistenceBroker; 14 import org.apache.ojb.broker.PersistenceBrokerFactory; 15 import org.apache.ojb.broker.query.Criteria; 16 import org.apache.ojb.broker.query.Query; 17 import org.apache.ojb.broker.query.QueryByCriteria; 18 import org.contineo.core.LoggingManager; 19 import org.contineo.documan.Article; 20 21 25 public class ArticleDAO { 26 27 31 private PersistenceBroker broker = null; 32 33 37 private PBKey pbkey; 38 39 43 private Logger logger; 44 45 46 47 public ArticleDAO() { 48 logger = LoggingManager.getLogger(this.getClass()); 49 pbkey = new PBKey("contineo"); 50 } 51 52 57 public boolean store(Article article) { 58 boolean result = true; 59 try { 60 broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey); 61 broker.beginTransaction(); 62 broker.store(article); 63 broker.commitTransaction(); 64 } 65 catch (Exception e) { 66 broker.abortTransaction(); 67 if (logger.isEnabledFor(Level.ERROR)) 68 logger.error(e.getMessage()); 69 result = false; 70 } finally { 71 if (broker != null) broker.close(); 72 } 73 return result; 74 } 75 76 80 public boolean delete(int articleid) { 81 boolean result = true; 82 try { 83 broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey); 84 Criteria crit = new Criteria(); 85 crit.addEqualTo("co_articleid", new Integer (articleid)); 86 Query query = new QueryByCriteria(org.contineo.documan.Article.class, crit); 87 broker.beginTransaction(); 88 broker.deleteByQuery(query); 89 broker.commitTransaction(); 90 } 91 catch (Exception e) { 92 broker.abortTransaction(); 93 if (logger.isEnabledFor(Level.ERROR)) 94 logger.error(e.getMessage()); 95 result = false; 96 } finally { 97 if (broker != null) broker.close(); 98 } 99 return result; 100 } 101 102 107 public Article findByPrimaryKey(int articleid) { 108 Article article = new Article(); 109 try { 110 broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey); 111 Criteria crit = new Criteria(); 112 crit.addEqualTo("co_articleid", new Integer (articleid)); 113 Query query = new QueryByCriteria(org.contineo.documan.Article.class, crit); 114 article = (Article)broker.getObjectByQuery(query); 115 } 116 catch (Exception e) { 117 if (logger.isEnabledFor(Level.ERROR)) 118 logger.error(e.getMessage()); 119 } finally { 120 if (broker != null) broker.close(); 121 } 122 return article; 123 } 124 125 129 public Collection findByDocId(int docid) { 130 Collection coll = null; 131 try { 132 broker = PersistenceBrokerFactory.createPersistenceBroker(pbkey); 133 Criteria crit = new Criteria(); 134 crit.addEqualTo("co_docid", new Integer (docid)); 135 QueryByCriteria query = new QueryByCriteria(org.contineo.documan.Article.class, crit); 136 query.addOrderBy("co_articledate",true); 137 coll = broker.getCollectionByQuery(query); 138 } catch (Exception e) { 139 if (logger.isEnabledFor(Level.ERROR)) 140 logger.error(e.getMessage()); 141 } finally { 142 if (broker != null) broker.close(); 143 } 144 return coll; 145 } 146 } 147 | Popular Tags |