On Wed, Jun 3, 2009 at 3:56 PM, Derek Chen-Becker <dchenbec...@gmail.com>wrote:
> I'm looking at issue #12: > > http://github.com/dpp/liftweb/issues#issue/12 > > I think I've tracked it down to an issue with the way Mapper handles date > and time data. Mapper doesn't use setTimestamp anywhere for prepared > statements, only setDate or setObject. The issue is that SQL Dates really > are just dates, not date + time. In particular, MappedDateTime's > jdbcFriendly and real_convertToJDBCFriendly methods are returning > java.sql.Dates, when they really should return java.sql.Timestamps. Also, > DB.runQuery uses a setDate instead of setTimestamp when the passed parameter > type is java.util.Date, and MetaMapper's BySql clause uses java.sql.Date. > The MetaMapper.save method uses st.setObject to set field values when > inserting and/or updating, and passes the java.sql.Types parameter > (TIMESTAMP, for MappedDateTime), but Derby is discarding the time portion. > This may also be a bug in Derby, but I don't think that we should be using > java.sql.Date for a TIMESTAMP field, either. Unless anyone has objections, I > propose that: > > > 1. The jdbcFriendly and convert_real... methods on MappedDateTime be > changed to return java.sql.Timestamp instead of java.sql.Date > 2. Change the BySQL clause to use a setTimestamp for the parameter if > the passed data is java.sql.Timestamp or java.util.Date, and use setDate > only if the passed data is already java.sql.Date. That way people can be > more explicit about which type they actually want > 3. Make a similar change to DB.runQuery's parameter handling > 4. Add a MappedDate and MappedTime for people who explicitly only want > a Date or Time respectively > > Thoughts? I'll go ahead and get this done this week unless anyone can > explain why we wouldn't want to do this. Sounds like a great analysis. Looking forward to the fixes. > > > Derek > > > > -- Lift, the simply functional web framework http://liftweb.net Beginning Scala http://www.apress.com/book/view/1430219890 Follow me: http://twitter.com/dpp Git some: http://github.com/dpp --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Lift" group. To post to this group, send email to liftweb@googlegroups.com To unsubscribe from this group, send email to liftweb+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/liftweb?hl=en -~----------~----~----~----~------~----~------~--~---