Hi Christiaan, On Dec 22, 2006, at 5:17 AM, Christiaan des Bouvrie wrote:
Hi, I just want to add my vote for such a feature. I currently use direct sql in order to deal with the server date, so a JDO solution would be nice. Based on the previous discussions, my suggestions: - In order to avoid confusion why not stress more that the server date is returned: serverDate(); - I would prefer if it is accessible through a method call. I have some doubt however whether JDOHelper is the right place, since currently JDOHelper has methods for state interrogation of persistentobjects (from a user point of view this does not require a connection tothe datastore). To me it would make more sense to add it to PersistenceManager. This is basically also the difference in JDOHelper.getObjectID() and PersistenceManager.getObjectByID();
I think you are right. It belongs not in a JDOHelper but associated with the back end server, which means either the PersistenceManagerFactory or PersistenceManager. Since there is a requirement that you get the result from the back end, which means that you need to have a connection to it, the PersistenceManager would seem to be the right interface to use.
- I think serverDate() should return java.util.Date since thistype is already supported by JDO.
There are a lot of types that might make sense. The reason I don't like Date is that there is not a good representation of the time zone. There is some crosstalk between Date and Calendar but getting the server's time zone is problematic.
I think introducing serverTimeStamp() could cause confusion since that would introduce dependency on the java.sql.TimeStamp class, making JDO less datastore / sql independent.
Yes, I agree that Timestamp isn't ideal either.I think that Calendar solves both of these problems. Something like java.util.Calendar PersistenceManager.getServerCalendar() would do it. The Calendar includes time zone, locale, and Date all wrapped up together. You can get a TimeZone by asking getTimeZone() and get the Date with getTime().
To do it similar like the System class, why not introduce PersistenceManager.serverNanoTime() which translates the datastore TimeStamp to nano seconds; - It would be nice to use the serverDate() method in JDOQL as well, though for me retrieving the server Date and using that instance in JDOQL to perform queries would suffice as well;
I was thinking that this would not quite be sufficient for e.g. finding Employees whose hire date was within two days. I think that SQL supports this functionality but JDOQL does not.
Craig
Kind regards, Christiaan
Craig Russell Architect, Sun Java Enterprise System http://java.sun.com/products/jdo 408 276-5638 mailto:[EMAIL PROTECTED] P.S. A good JDO? O, Gasp!
smime.p7s
Description: S/MIME cryptographic signature
