Lance,
The column name "start_timestamp" suggests that you are storing "point-in-time" kind of timestamps.
The question is: is it "timestamp with time zone" or "timestamp without time zone"? I think "with time zone" makes things easier.
If the field is "with time zone", then
GregorianCalendar c = new GregorianCalendar();
Timestamp ts = resultSet.getTimestamp("start_timestamp", c); // <-- you'd better always use calendar-aware methods
c.setTime(ts);
XMLGregorianCalendar xmlStartTimestamp = DatatypeFactory.newInstance().newXMLGregorianCalendar(c);
... setStartTimestamp(xmlStartTimestamp)
If performance matters, you might want to cache GregorianCalendar & DatatypeFactory objects outside of the loop (however note that neither of them is thread-safe).
Vladimir