Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/NoticeboardAttachmentDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/Attic/NoticeboardAttachmentDAO.java,v diff -u -r1.5 -r1.6 --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/NoticeboardAttachmentDAO.java 6 Oct 2005 06:46:37 -0000 1.5 +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/NoticeboardAttachmentDAO.java 23 Dec 2005 01:56:39 -0000 1.6 @@ -6,6 +6,7 @@ import java.util.List; +import org.hibernate.FlushMode; import org.lamsfoundation.lams.tool.noticeboard.NoticeboardAttachment; import org.lamsfoundation.lams.tool.noticeboard.NoticeboardContent; import org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardAttachmentDAO; @@ -18,9 +19,11 @@ * instruction files

*/ public class NoticeboardAttachmentDAO extends HibernateDaoSupport implements INoticeboardAttachmentDAO { + + private static final String FIND_NB_ATTACHMENT_BY_UUID = "from " + NoticeboardAttachment.class.getName() + " as nb where nb.uuid=?"; + private static final String FIND_NB_ATTACHMENT_BY_FILENAME = "from " + NoticeboardAttachment.class.getName() + " as nb where nb.filename=?"; + private static final String GET_ATTACHMENT_FROM_CONTENT = "select nb.attachmentId from " + NoticeboardAttachment.class.getName() + " as nb where nb.nbContent= :nbContent"; - private static final String GET_ATTACHMENT_FROM_CONTENT = "select na.attachmentId from NoticeboardAttachment na where na.nbContent= :nbContent"; - /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardAttachmentDAO#retrieveAttachment(java.lang.Long) */ public NoticeboardAttachment retrieveAttachment(Long attachmentId) { @@ -30,31 +33,33 @@ /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardAttachmentDAO#retrieveAttachmentByUuid(java.lang.Long) */ public NoticeboardAttachment retrieveAttachmentByUuid(Long uuid) { - String query = "from NoticeboardAttachment na where na.uuid=?"; - List attachments = getHibernateTemplate().find(query,uuid); - if (attachments!= null && attachments.size() == 0) - { - return null; - } - else - { - return (NoticeboardAttachment)attachments.get(0); - } + List attachments = getSession().createQuery(FIND_NB_ATTACHMENT_BY_UUID) + .setLong(0,uuid.longValue()) + .list(); + + if(attachments != null && attachments.size() > 0){ + NoticeboardAttachment nb = (NoticeboardAttachment) attachments.get(0); + return nb; + } + else + return null; + + } /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardAttachmentDAO#retrieveAttachmentByFilename(java.lang.String) */ public NoticeboardAttachment retrieveAttachmentByFilename(String filename) { - String query= "from NoticeboardAttachment na where na.filename=?"; - List attachments = getHibernateTemplate().find(query,filename); - if (attachments!= null && attachments.size() == 0) - { - return null; - } - else - { - return (NoticeboardAttachment)attachments.get(0); - } + List attachments = getSession().createQuery(FIND_NB_ATTACHMENT_BY_FILENAME) + .setString(0, filename) + .list(); + + if(attachments != null && attachments.size() > 0){ + NoticeboardAttachment nb = (NoticeboardAttachment) attachments.get(0); + return nb; + } + else + return null; } @@ -75,12 +80,24 @@ /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardAttachmentDAO#removeAttachment(org.lamsfoundation.lams.tool.noticeboard.NoticeboardContent) */ public void removeAttachment(NoticeboardAttachment attachment) { - this.getHibernateTemplate().delete(attachment); + //this.getHibernateTemplate().delete(attachment); + removeAttachment(attachment.getUuid()); } /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardAttachmentDAO#removeAttachment(java.lang.Long) */ public void removeAttachment(Long uuid) { - this.getHibernateTemplate().delete(retrieveAttachmentByUuid(uuid)); + //this.getHibernateTemplate().delete(retrieveAttachmentByUuid(uuid)); + List attachments = getSession().createQuery(FIND_NB_ATTACHMENT_BY_UUID) + .setLong(0,uuid.longValue()) + .list(); + + if(attachments != null && attachments.size() > 0){ + NoticeboardAttachment nb = (NoticeboardAttachment) attachments.get(0); + this.getSession().setFlushMode(FlushMode.AUTO); + this.getHibernateTemplate().delete(nb); + this.getHibernateTemplate().flush(); + } + } } Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/NoticeboardContentDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/NoticeboardContentDAO.java,v diff -u -r1.5 -r1.6 --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/NoticeboardContentDAO.java 6 Oct 2005 06:46:37 -0000 1.5 +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/NoticeboardContentDAO.java 23 Dec 2005 01:56:39 -0000 1.6 @@ -24,12 +24,14 @@ import java.util.List; import java.lang.Long; +import org.hibernate.FlushMode; import org.hibernate.HibernateException; import org.hibernate.Session; import org.lamsfoundation.lams.tool.noticeboard.NoticeboardContent; import org.lamsfoundation.lams.tool.noticeboard.NoticeboardSession; import org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardContentDAO; import org.springframework.orm.hibernate3.HibernateCallback; +import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; /** @@ -39,12 +41,13 @@ public class NoticeboardContentDAO extends HibernateDaoSupport implements INoticeboardContentDAO { + private static final String FIND_NB_CONTENT = "from " + NoticeboardContent.class.getName() + " as nb where nb.nbContentId=?"; + private static final String LOAD_NB_BY_SESSION = "select nb from NoticeboardContent nb left join fetch " + "nb.nbSessions session where session.nbSessionId=:sessionId"; - /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardContentDAO#getNbContentByUID(java.lang.Long) */ public NoticeboardContent getNbContentByUID(Long uid) { @@ -101,20 +104,26 @@ /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardContentDAO#removeNoticeboard(java.lang.Long)*/ public void removeNoticeboard(Long nbContentId) - { - - String query = "from NoticeboardContent as nb where nb.nbContentId="; - StringBuffer sb = new StringBuffer(query); - sb.append(nbContentId.longValue()); - String queryString = sb.toString(); - - this.getHibernateTemplate().delete(queryString); + { + if ( nbContentId != null) { + //String query = "from org.lamsfoundation.lams.tool.noticeboard.NoticeboardContent as nb where nb.nbContentId=?"; + List list = getSession().createQuery(FIND_NB_CONTENT) + .setLong(0,nbContentId.longValue()) + .list(); + + if(list != null && list.size() > 0){ + NoticeboardContent nb = (NoticeboardContent) list.get(0); + this.getSession().setFlushMode(FlushMode.AUTO); + this.getHibernateTemplate().delete(nb); + this.getHibernateTemplate().flush(); + } + } } /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardContentDAO#removeNoticeboard(org.lamsfoundation.lams.tool.noticeboard.NoticeboardContent)*/ public void removeNoticeboard(NoticeboardContent nbContent) { - this.getHibernateTemplate().delete(nbContent); + removeNoticeboard(nbContent.getNbContentId()); } /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardContentDAO#removeNbSessions(org.lamsfoundation.lams.tool.noticeboard.NoticeboardContent)*/ @@ -130,8 +139,7 @@ nbSession.setNbContent(content); content.getNbSessions().add(nbSession); this.getHibernateTemplate().saveOrUpdate(nbSession); - this.getHibernateTemplate().saveOrUpdate(content); - + this.getHibernateTemplate().saveOrUpdate(content); } } Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/NoticeboardSessionDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/NoticeboardSessionDAO.java,v diff -u -r1.7 -r1.8 --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/NoticeboardSessionDAO.java 6 Oct 2005 06:46:37 -0000 1.7 +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/NoticeboardSessionDAO.java 23 Dec 2005 01:56:39 -0000 1.8 @@ -23,13 +23,15 @@ import java.util.List; +import org.hibernate.FlushMode; import org.hibernate.HibernateException; import org.hibernate.Session; import org.lamsfoundation.lams.tool.noticeboard.NoticeboardContent; import org.lamsfoundation.lams.tool.noticeboard.NoticeboardSession; import org.lamsfoundation.lams.tool.noticeboard.NoticeboardUser; import org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardSessionDAO; import org.springframework.orm.hibernate3.HibernateCallback; +import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; /** @@ -39,17 +41,13 @@ public class NoticeboardSessionDAO extends HibernateDaoSupport implements INoticeboardSessionDAO { + private static final String FIND_NB_SESSION = "from " + NoticeboardSession.class.getName() + " as nb where nb.nbSessionId=?"; + private static final String LOAD_NBSESSION_BY_USER = "select ns from NoticeboardSession ns left join fetch " + "ns.nbUsers user where user.userId=:userId"; private static final String GET_SESSIONS_FROM_CONTENT = "select ns.nbSessionId from NoticeboardSession ns where ns.nbContent= :nbContent"; - - /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardSessionDAO#getNbSessionByUID(java.lang.Long) */ - public NoticeboardSession getNbSessionByUID(Long uid) - { - return (NoticeboardSession) this.getHibernateTemplate() - .get(NoticeboardSession.class, uid); - } + /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardSessionDAO#findNbSessionById(java.lang.Long) */ public NoticeboardSession findNbSessionById(Long nbSessionId) @@ -80,30 +78,33 @@ this.getHibernateTemplate().update(nbSession); } - - /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardSessionDAO#removeNbSessionByUID(java.lang.Long) */ - public void removeNbSessionByUID(Long uid) - { - NoticeboardSession nb = (NoticeboardSession)getHibernateTemplate().get(NoticeboardSession.class, uid); - this.getHibernateTemplate().delete(nb); - } - + /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardSessionDAO#removeNbSession(java.lang.Long) */ public void removeNbSession(Long nbSessionId) { - String query = "from NoticeboardSession as nbS where nbS.nbSessionId ="; - StringBuffer sb = new StringBuffer(query); - sb.append(nbSessionId.longValue()); - - String queryString = sb.toString(); - - this.getHibernateTemplate().delete(queryString); + + HibernateTemplate templ = this.getHibernateTemplate(); + if ( nbSessionId != null) { + //String query = "from org.lamsfoundation.lams.tool.noticeboard.NoticeboardContent as nb where nb.nbContentId=?"; + List list = getSession().createQuery(FIND_NB_SESSION) + .setLong(0,nbSessionId.longValue()) + .list(); + + if(list != null && list.size() > 0){ + NoticeboardSession nb = (NoticeboardSession) list.get(0); + this.getSession().setFlushMode(FlushMode.AUTO); + templ.delete(nb); + templ.flush(); + } + } } + /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardSessionDAO#removeNbSession(org.lamsfoundation.lams.tool.noticeboard.NoticeboardSession) */ public void removeNbSession(NoticeboardSession nbSession) { - this.getHibernateTemplate().delete(nbSession); + removeNbSession(nbSession.getNbSessionId()); + //this.getHibernateTemplate().delete(nbSession); } Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/NoticeboardUserDAO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/NoticeboardUserDAO.java,v diff -u -r1.5 -r1.6 --- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/NoticeboardUserDAO.java 6 Oct 2005 06:46:37 -0000 1.5 +++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/dao/hibernate/NoticeboardUserDAO.java 23 Dec 2005 01:56:39 -0000 1.6 @@ -26,8 +26,11 @@ import java.util.List; +import org.hibernate.FlushMode; import org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardUserDAO; +import org.lamsfoundation.lams.tool.noticeboard.NoticeboardContent; import org.lamsfoundation.lams.tool.noticeboard.NoticeboardUser; +import org.springframework.orm.hibernate3.HibernateTemplate; import org.springframework.orm.hibernate3.support.HibernateDaoSupport; import org.lamsfoundation.lams.tool.noticeboard.NoticeboardSession; @@ -37,17 +40,13 @@ */ public class NoticeboardUserDAO extends HibernateDaoSupport implements INoticeboardUserDAO { + private static final String FIND_NB_USER = "from " + NoticeboardUser.class.getName() + " as nb where nb.userId=?"; + + private static final String FIND_NB_USER_BY_SESSION = "from " + NoticeboardUser.class.getName() + " as nb where nb.userId=? and nb.nbSession.nbSessionId=?"; + private static final String COUNT_USERS_IN_SESSION = "select nu.userId from NoticeboardUser nu where nu.nbSession= :nbSession"; - - - /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardUserDAO#getNbUserByUID(java.lang.Long) */ - public NoticeboardUser getNbUserByUID(Long uid) - { - return (NoticeboardUser) this.getHibernateTemplate() - .get(NoticeboardUser.class, uid); - } - + /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardUserDAO#getNbUserByID(java.lang.Long) */ public NoticeboardUser getNbUserByID(Long userId) { @@ -66,21 +65,18 @@ /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardUserDAO#getNbUserBySession(java.lang.Long, java.lang.Long)*/ public NoticeboardUser getNbUserBySession(Long userId, Long sessionId) - { - String query = "select nu from NoticeboardUser nu where nu.userId=? and nu.nbSession.nbSessionId=?"; - Long[] bindingValues = new Long[2]; - bindingValues[0] = userId; - bindingValues[1] = sessionId; - List usersReturned = getHibernateTemplate().find(query, bindingValues); //although only one or no users should be returned - - if (usersReturned!= null && usersReturned.size() == 0) - { - return null; + { + List usersReturned = getSession().createQuery(FIND_NB_USER_BY_SESSION) + .setLong(0,userId.longValue()) + .setLong(1, sessionId.longValue()) + .list(); + + if(usersReturned != null && usersReturned.size() > 0){ + NoticeboardUser nb = (NoticeboardUser) usersReturned.get(0); + return nb; } else - { - return (NoticeboardUser)usersReturned.get(0); - } + return null; } @@ -99,20 +95,27 @@ /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardUserDAO#removeNbUser(java.lang.Long) */ public void removeNbUser(Long userId) { - String query = "from NoticeboardUser as user where user.userId ="; - StringBuffer sb = new StringBuffer(query); - sb.append(userId.longValue()); - - String queryString = sb.toString(); - - this.getHibernateTemplate().delete(queryString); + if ( userId != null) { + //String query = "from org.lamsfoundation.lams.tool.noticeboard.NoticeboardContent as nb where nb.nbContentId=?"; + List list = getSession().createQuery(FIND_NB_USER) + .setLong(0,userId.longValue()) + .list(); + + if(list != null && list.size() > 0){ + NoticeboardUser nb = (NoticeboardUser) list.get(0); + this.getSession().setFlushMode(FlushMode.AUTO); + this.getHibernateTemplate().delete(nb); + this.getHibernateTemplate().flush(); + } + } } /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardUserDAO#removeNbUser(org.lamsfoundation.lams.tool.noticeboard.NoticeboardUser) */ public void removeNbUser(NoticeboardUser nbUser) { - this.getHibernateTemplate().delete(nbUser); + // this.getHibernateTemplate().delete(nbUser); + removeNbUser(nbUser.getUserId()); } /** @see org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardUserDAO#getNumberOfUsers((org.lamsfoundation.lams.tool.noticeboard.NoticeboardSession) */