Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

...

Note
titleNov 10, 2006

This is no longer turned on, after consulting with Thomas, switched back to findByNamedQuery, renamed the 'askHibernate' method below to 'findByNamedQuery' and trapped all Hibernate exceptions, logged, so this method does not throw exceptions

Code Block
borderStylesolid
titleOriginal code fragment (example)borderStylesolid
List courses = getHibernateTemplate().findByNamedQuery("findCourseInfoByYearTermCntlNum",
					new Object[] { courseInfoFields[COURSE_TERM_YEAR],
							courseInfoFields[COURSE_TERM_ID],
							courseInfoFields[COURSE_CNTL_NUM] },
					new Type[] { Hibernate.STRING, Hibernate.STRING,
							Hibernate.STRING });
Code Block
borderStylesolid
titleReplacement code (example)borderStylesolid
List courses = askHibernate("findCourseInfoByYearTermCntlNum", new Object[] { courseInfoFields[COURSE_TERM_YEAR],
					courseInfoFields[COURSE_TERM_ID],
					courseInfoFields[COURSE_CNTL_NUM] });
Code Block
borderStylesolid
titleaskHibernate method, CourseManagementManagerImpl.javaborderStylesolid
        private List askHibernate(final String queryName, final Object[] args) {
		HibernateCallback hc = new HibernateCallback() {
			public Object doInHibernate(Session session) throws HibernateException {
				Query q = session.getNamedQuery(queryName);
				if (args != null) 
					for (int i=0;i<args.length;i++) {
						String className = args[i].getClass().getName();
						if (className.equals("java.lang.String")) {
							q.setString(i, (String)args[i]);
						} else if (className.equals("java.lang.Integer")) {
							q.setInteger(i, (Integer)args[i]);
						}
					}
				return q.list();
			}
		};
		return getHibernateTemplate().executeFind(hc);
	}