⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 xwikihibernatestore.java

📁 xwiki 源码
💻 JAVA
📖 第 1 页 / 共 5 页
字号:
                checkHibernate(context);                bTransaction = beginTransaction(context);            }            Session session = getSession(context);            List list = doc.getAttachmentList();            for (int i=0;i<list.size();i++) {                XWikiAttachment attachment = (XWikiAttachment) list.get(i);                saveAttachment(attachment, false, context, false);            }            if (bTransaction)                endTransaction(context, true);        }        catch (Exception e) {            Object[] args = { doc.getFullName() };            throw new XWikiException( XWikiException.MODULE_XWIKI_STORE, XWikiException.ERROR_XWIKI_STORE_HIBERNATE_SAVING_ATTACHMENT_LIST,                    "Exception while saving attachments attachment list of document {0}", e, args);        } finally {            try {                if (bTransaction)                    endTransaction(context, false);            } catch (Exception e) {}        }    }    public void saveAttachment(XWikiAttachment attachment, XWikiContext context, boolean bTransaction) throws XWikiException {        saveAttachment(attachment, true, context, bTransaction);    }    public void saveAttachment(XWikiAttachment attachment, boolean parentUpdate, XWikiContext context, boolean bTransaction) throws XWikiException {        try {            if (bTransaction) {                checkHibernate(context);                bTransaction = beginTransaction(context);            }            Session session = getSession(context);            Query query = session.createQuery("select attach.id from XWikiAttachment as attach where attach.id = :id");            query.setLong("id", attachment.getId());            if (query.uniqueResult()==null)                session.save(attachment);            else                session.update(attachment);            if (parentUpdate)                saveXWikiDoc(attachment.getDoc(), context, false);            if (bTransaction) {                endTransaction(context, true);            }        }        catch (Exception e) {            Object[] args = { attachment.getFilename(), attachment.getDoc().getFullName() };            throw new XWikiException( XWikiException.MODULE_XWIKI_STORE, XWikiException.ERROR_XWIKI_STORE_HIBERNATE_SAVING_ATTACHMENT,                    "Exception while saving attachments for attachment {0} of document {1}", e, args);        } finally {            try {                if (bTransaction)                    endTransaction(context, false);            } catch (Exception e) {}        }    }    public void saveAttachmentContent(XWikiAttachment attachment, XWikiContext context, boolean bTransaction) throws XWikiException {        saveAttachmentContent(attachment, true, context, bTransaction);    }    public void saveAttachmentContent(XWikiAttachment attachment, boolean parentUpdate, XWikiContext context, boolean bTransaction) throws XWikiException {        try {            XWikiAttachmentContent content = attachment.getAttachment_content();            if (content.isContentDirty()) {                attachment.updateContentArchive(context);            }            XWikiAttachmentArchive archive = attachment.getAttachment_archive();            if (bTransaction) {                checkHibernate(context);                bTransaction = beginTransaction(context);            }            Session session = getSession(context);            Query query = session.createQuery("select attach.id from XWikiAttachmentContent as attach where attach.id = :id");            query.setLong("id", content.getId());            if (query.uniqueResult()==null)                session.save(content);            else                session.update(content);            query = session.createQuery("select attach.id from XWikiAttachmentArchive as attach where attach.id = :id");            query.setLong("id", archive.getId());            if (query.uniqueResult()==null)                session.save(archive);            else                session.update(archive);            if (parentUpdate)                saveXWikiDoc(attachment.getDoc(), context, false);            if (bTransaction) {                endTransaction(context, true);            }        }        catch (Exception e) {            Object[] args = { attachment.getFilename(), attachment.getDoc().getFullName() };            throw new XWikiException( XWikiException.MODULE_XWIKI_STORE, XWikiException.ERROR_XWIKI_STORE_HIBERNATE_SAVING_ATTACHMENT,                    "Exception while saving attachment {0} of document {1}", e, args);        } finally {            try {                if (bTransaction)                    endTransaction(context, false);            } catch (Exception e) {}        }    }    public void loadAttachmentContent(XWikiAttachment attachment, XWikiContext context, boolean bTransaction) throws XWikiException {        try {            if (bTransaction) {                checkHibernate(context);                bTransaction = beginTransaction(context);            }            Session session = getSession(context);            XWikiAttachmentContent content = new XWikiAttachmentContent(attachment);            attachment.setAttachment_content(content);            session.load(content, new Long(content.getId()));            if (bTransaction)                endTransaction(context, false);        }        catch (Exception e) {            Object[] args = { attachment.getFilename(), attachment.getDoc().getFullName() };            throw new XWikiException( XWikiException.MODULE_XWIKI_STORE, XWikiException.ERROR_XWIKI_STORE_HIBERNATE_LOADING_ATTACHMENT,                    "Exception while loading attachment {0} of document {1}", e, args);        } finally {            try {                if (bTransaction)                    endTransaction(context, false);            } catch (Exception e) {}        }    }    public void loadAttachmentArchive(XWikiAttachment attachment, XWikiContext context, boolean bTransaction) throws XWikiException {        try {            if (bTransaction) {                checkHibernate(context);                bTransaction = beginTransaction(context);            }            Session session = getSession(context);            XWikiAttachmentArchive archive = new XWikiAttachmentArchive();            archive.setAttachment(attachment);            attachment.setAttachment_archive(archive);            session.load(archive, new Long(archive.getId()));            if (bTransaction)                endTransaction(context, false);        }        catch (Exception e) {            Object[] args = { attachment.getFilename(), attachment.getDoc().getFullName() };            throw new XWikiException( XWikiException.MODULE_XWIKI_STORE, XWikiException.ERROR_XWIKI_STORE_HIBERNATE_LOADING_ATTACHMENT,                    "Exception while loading attachment {0} of document {1}", e, args);        } finally {            try {                if (bTransaction)                    endTransaction(context, false);            } catch (Exception e) {}        }    }    public void deleteXWikiAttachment(XWikiAttachment attachment,  XWikiContext context, boolean bTransaction) throws XWikiException {        deleteXWikiAttachment(attachment, true, context, bTransaction);    }    public XWikiLock loadLock(long docId, XWikiContext context, boolean bTransaction) throws XWikiException {        XWikiLock lock=null;        try {            if (bTransaction) {                checkHibernate(context);                bTransaction = beginTransaction(context);            }            Session session = getSession(context);            Query query = session.createQuery("select lock.docId from XWikiLock as lock where lock.docId = :docId");            query.setLong("docId", docId);            if (query.uniqueResult()!=null)            {                lock = new XWikiLock();                session.load(lock, new Long(docId));            }            if (bTransaction)                endTransaction(context, false);        }        catch (Exception e) {            throw new XWikiException( XWikiException.MODULE_XWIKI_STORE, XWikiException.ERROR_XWIKI_STORE_HIBERNATE_LOADING_LOCK,                    "Exception while loading lock", e);        } finally {            try {                if (bTransaction)                    endTransaction(context, false);            } catch (Exception e) {}        }        return lock;    }    public void saveLock(XWikiLock lock, XWikiContext context, boolean bTransaction) throws XWikiException {        try {            if (bTransaction) {                checkHibernate(context);                bTransaction = beginTransaction(context);            }            Session session = getSession(context);            Query query = session.createQuery("select lock.docId from XWikiLock as lock where lock.docId = :docId");            query.setLong("docId", lock.getDocId());            if (query.uniqueResult()==null)                session.save(lock);            else                session.update(lock);            if (bTransaction) {                endTransaction(context, true);            }        }        catch (Exception e) {            throw new XWikiException( XWikiException.MODULE_XWIKI_STORE, XWikiException.ERROR_XWIKI_STORE_HIBERNATE_SAVING_LOCK,                    "Exception while locking document", e);        } finally {            try {                if (bTransaction)                    endTransaction(context, false);            } catch (Exception e) {}        }    }    public void deleteLock(XWikiLock lock, XWikiContext context, boolean bTransaction) throws XWikiException {        try {            if (bTransaction) {                checkHibernate(context);                bTransaction = beginTransaction(context);            }            Session session = getSession(context);            session.delete(lock);            if (bTransaction)                endTransaction(context, true);        }        catch (Exception e) {            throw new XWikiException( XWikiException.MODULE_XWIKI_STORE, XWikiException.ERROR_XWIKI_STORE_HIBERNATE_DELETING_LOCK,                    "Exception while deleting lock", e);        } finally {            try {                if (bTransaction)                    endTransaction(context, false);            } catch (Exception e) {}        }    }    public void deleteXWikiAttachment(XWikiAttachment attachment, boolean parentUpdate, XWikiContext context, boolean bTransaction) throws XWikiException {        try {            if (bTransaction) {                checkHibernate(context);                bTransaction = beginTransaction(context);            }            Session session = getSession(context);            // Delete the three attachement entries            loadAttachmentContent(attachment, context, false);            session.delete(attachment.getAttachment_content());            loadAttachmentArchive(attachment, context, false);            session.delete(attachment.getAttachment_archive());            session.delete(attachment);            if (parentUpdate) {                List list = attachment.getDoc().getAttachmentList();                for (int i=0;i<list.size();i++) {                    XWikiAttachment attach = (XWikiAttachment) list.get(i);                    if (attachment.getFilename().equals(attach.getFilename())) {                        list.remove(i);                        break;                    }                }                saveXWikiDoc(attachment.getDoc(), context, false);            }            if (bTransaction) {                endTransaction(context, true);            }        }        catch (Exception e) {            Object[] args = { attachment.getFilename(), attachment.getDoc().getFullName() };            throw new XWikiException( XWikiException.MODULE_XWIKI_STORE, XWikiException.ERROR_XWIKI_STORE_HIBERNATE_DELETING_ATTACHMENT,                    "Exception while deleting attachment {0} of document {1}", e, args);        } finally {            try {                if (bTransaction)                    endTransaction(context, false);            } catch (Exception e) {}        }    }    public void getContent(XWikiDocument doc, StringBuffer buf) {        buf.append(doc.getContent());    }    public List getClassList(XWikiContext context) throws XWikiException {        boolean bTransaction = true;        try {            checkHibernate(context);            bTransaction = beginTransaction(context);            Session session = getSession(context);            Query query = session.createQuery("select bclass.name from BaseClass as bclass");            Iterator it = query.list().iterator();            List list = new ArrayList();            while (it.hasNext()) {                String name = (String)it.next();                list.add(name);            }            if (bTransaction)                endTransaction(context, false);            return list;        }        catch (Exception e) {            throw new XWikiException( XWikiExcep

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -