📄 documentdaohibernateimpl.java
字号:
package com.cnpoint.myspaces.document.dao.hibernate;
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.springframework.dao.DataAccessException;
import org.springframework.orm.hibernate3.HibernateCallback;
import com.cnpoint.myspaces.common.util.BaseDAOHibernate;
import com.cnpoint.myspaces.document.dao.DocumentDAO;
import com.cnpoint.myspaces.document.model.Document;
import com.cnpoint.myspaces.document.model.DocumentNode;
public class DocumentDAOHibernateImpl extends BaseDAOHibernate implements DocumentDAO{
private static final String LOAD_ALL_COUNT ="select count(*) from Document ui";
/**
* 保存文档信息
* status =0 状态表示没有审核 刚刚派发
*/
public void saveDocument(Document doc) {
// TODO Auto-generated method stub
getHibernateTemplate().saveOrUpdate(doc);
//documentnode
Document doc2 =(Document)getHibernateTemplate().find("select doc from Document doc where doc.beginUser='"+doc.getBeginUser()+"' order by doc.createdate desc").get(0);
DocumentNode docNode = new DocumentNode();
docNode.setDocID(doc2.getId());
docNode.setDocumentName(doc.getName());
docNode.setBeginUser(doc.getBeginUser());
docNode.setEndUser(doc.getEndUser());
docNode.setStatus(0);
getHibernateTemplate().save(docNode);
}
//得到自己需要做的,不是自己派发的列表
public List findDocumentListDo(final int offset, final int limit,final String username) {
// TODO Auto-generated method stub
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException, SQLException {
String q = "from Document" +
" document where document.endUser = '"+username+"' and document.status= 0 ";
Query query = s.createQuery(q);
query.setFirstResult(offset);
query.setMaxResults(limit);
List list = query.list();
return list;
}
});
}
// 得到自己派发的,不需要自己做的列表
public List findDocumentList(final int offset, final int limit,final String username) {
// TODO Auto-generated method stub
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException, SQLException {
String q = "from Document" +
" document where document.beginUser = '"+username+"' ";
Query query = s.createQuery(q);
query.setFirstResult(offset);
query.setMaxResults(limit);
List list = query.list();
return list;
}
});
}
//是自己派发的
public int getAllDocumentNum(String username ) {
// TODO Auto-generated method stub
try {
String hsql = "select count(*) from Document document where document.beginUser = '"+username+"' ";
List l = getHibernateTemplate().find(hsql);
if (!l.isEmpty()) {
return ( (Integer) l.get(0)).intValue();
}
else {
return 0;
}
}
catch (DataAccessException ex) {
logger.error(ex);
return 0;
}
}
//不是自己派发的
public int getAllDocumentNum2(String username ) {
// TODO Auto-generated method stub
try {
String hsql = "select count(*) from Document document where document.endUser = '"+username+"' and document.status= 0 ";
List l = getHibernateTemplate().find(hsql);
if (!l.isEmpty()) {
return ( (Integer) l.get(0)).intValue();
}
else {
return 0;
}
}
catch (DataAccessException ex) {
logger.error(ex);
return 0;
}
}
public List findDocumentListFinish(final int offset,final int limit,final String username) {
// TODO Auto-generated method stub
return getHibernateTemplate().executeFind(new HibernateCallback() {
public Object doInHibernate(Session s) throws HibernateException, SQLException {
String q = "from Document" +
" document where document.endUser = '"+username+"' and document.status= 1 ";
Query query = s.createQuery(q);
query.setFirstResult(offset);
query.setMaxResults(limit);
List list = query.list();
return list;
}
});
}
public int getAllDocumentNumFinish(String username) {
// TODO Auto-generated method stub
try {
String hsql = "select count(*) from Document document where document.endUser = '"+username+"' and document.status= 1 ";
List l = getHibernateTemplate().find(hsql);
if (!l.isEmpty()) {
return ( (Integer) l.get(0)).intValue();
}
else {
return 0;
}
}
catch (DataAccessException ex) {
logger.error(ex);
return 0;
}
}
/**
* 更新父节点的信息,
* 同时在产生一个新的文档在document
* 记录日志在documentNode
*/
public void update(Document doc){
//getHibernateTemplate().update(doc);
/*
Session session = getHibernateTemplate().getSessionFactory().openSession();
Transaction tx = null;
try{
tx = session.beginTransaction();
Document doc1 = (Document)session.load(Document.class,doc.getId());
doc1.setId(doc.getId());
doc1.setStatus(1);
session.update(doc1);
tx.commit();
}catch (HibernateException he){
tx.rollback();
}finally{
session.close();
}*/
//Document d = (Document)getHibernateTemplate().load(Document.class,doc.getId());
List l = getHibernateTemplate().find("from Document doc where doc.endUser='"+doc.getBeginUser()+"' and doc.parent='"+doc.getId()+"' ");
if(l.size() == 0){
Document k = (Document)getHibernateTemplate().load(Document.class,doc.getId());
k.setStatus(1);
getHibernateTemplate().update(k);
}else{
Document v = (Document)l.get(0);
v.setStatus(1);
getHibernateTemplate().update(v);
}
//d.setStatus(1);
//先查询数据表,parent 是否为空,然后在更新
Document doc2 = new Document();
doc2.setParent(doc.getId());
doc2.setBeginUser(doc.getBeginUser());
doc2.setEndUser(doc.getEndUser());
doc2.setFilename(doc.getFilename());
doc2.setName(doc.getName());
doc2.setStatus(0);
getHibernateTemplate().save(doc2);
//saveDocumentNode(doc2,doc.getId());
String id = doc.getId();
DocumentNode docNode = new DocumentNode();
docNode.setDocID(id);
docNode.setDocumentName(doc2.getName());
docNode.setBeginUser(doc2.getBeginUser());
docNode.setEndUser(doc2.getEndUser());
docNode.setStatus(0);
getHibernateTemplate().save(docNode);
//update documentNode set status = 1 where docID = '' and endUser=' ';
DocumentNode docUpdateNode = (DocumentNode)getHibernateTemplate().find("from DocumentNode node where node.status=0 and node.endUser='"+doc2.getBeginUser()+"' and node.docID='"+id+"' ").get(0);
docUpdateNode.setStatus(1);
getHibernateTemplate().update(docUpdateNode);
}
public void saveDocumentNode(Document doc,String id) {
// TODO Auto-generated method stub
//Document document = (Document)getHibernateTemplate().find("from Document doc where doc.id='"+id+"' ").get(0);
//getHibernateTemplate().saveOrUpdate(doc);
//Document doc2 =(Document)getHibernateTemplate().find("select doc from Document doc where doc.beginUser='"+doc.getBeginUser()+"' order by doc.createdate desc").get(0);
DocumentNode docNode = new DocumentNode();
docNode.setDocID(id);
docNode.setDocumentName(doc.getName());
docNode.setBeginUser(doc.getBeginUser());
docNode.setEndUser(doc.getEndUser());
docNode.setStatus(0);
getHibernateTemplate().save(docNode);
//update documentNode set status = 1 where docID = '' and endUser=' ';
DocumentNode docUpdateNode = (DocumentNode)getHibernateTemplate().find("from DocumentNode node where node.status=0 and node.endUser='"+doc.getBeginUser()+"' and node.docID='"+id+"' ").get(0);
docUpdateNode.setStatus(1);
getHibernateTemplate().update(docUpdateNode);
//getHibernateTemplate().update("",doc);
}
/**
* 审核的时候用
* @param doc
* @param id
*/
public void update(String id) {
// TODO Auto-generated method stub
Document document = (Document)getHibernateTemplate().find("from Document doc where doc.id='"+id+"' ").get(0);
//getHibernateTemplate().saveOrUpdate(doc);
//Document doc2 =(Document)getHibernateTemplate().find("select doc from Document doc where doc.beginUser='"+doc.getBeginUser()+"' order by doc.createdate desc").get(0);
/*
DocumentNode docNode = new DocumentNode();
docNode.setDocID(id);
docNode.setDocumentName(doc.getName());
docNode.setBeginUser(doc.getBeginUser());
docNode.setEndUser(doc.getEndUser());
docNode.setStatus(0);
getHibernateTemplate().save(docNode);
//update documentNode set status = 1 where docID = '' and endUser=' ';
DocumentNode docUpdateNode = (DocumentNode)getHibernateTemplate().find("from DocumentNode node where node.status=0 and node.endUser='"+doc.getBeginUser()+"' ").get(0);
docUpdateNode.setStatus(1);
getHibernateTemplate().update(docUpdateNode);
//getHibernateTemplate().update("",doc);
*/
}
/**
* 更新审核的节点. stauts = 1 表示已经做过
*/
public void updateEnd(Document doc){
//getHibernateTemplate().update(doc);
Session session = getHibernateTemplate().getSessionFactory().openSession();
Transaction tx = null;
try{
tx = session.beginTransaction();
Document doc1 = (Document)session.load(Document.class,doc.getId());
doc1.setId(doc.getId());
doc1.setStatus(1);
session.update(doc1);
tx.commit();
}catch (HibernateException he){
tx.rollback();
}finally{
session.close();
}
}
public Document load(String id) {
// TODO Auto-generated method stub
return (Document)getHibernateTemplate().find("from Document doc where doc.id='"+id+"' ").get(0);
}
public void delete(Document doc) {
// TODO Auto-generated method stub
getHibernateTemplate().delete(doc);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -