db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bin Sun <sun2...@yahoo.com>
Subject Re: Feature proposal for JDO 2.1 maintenance: current DB time
Date Fri, 20 Oct 2006 08:58:15 GMT
Hi, all!

    I think to least impact the current API, we'd
better simply add a method to PMF or PM:
    public Date getNow();

--- Michael Bouschen <mbo.tech@spree.de> wrote:

> Hi,
> 
> I see one issue with using the syntax "new Date()":
> it might conflict 
> with the constructor expression used in the result
> expression, because 
> both use the keyword "new". A constructor expression
> is only supported 
> in the query result expression; it is used to wrap
> values into a result 
> class element and it is evaluated on the client. The
> expression "new 
> Date()" should be supported in the result and the
> filter, it does not 
> wrap any other values and it is evaluated on the
> database back end.
> How about using a different syntax for the current
> database date, e.g. 
> JDOHelper.CURRENT_DATE() ?
> 
> The other interesting issue with the example from
> Jörg is that it does 
> not define a candidate class. I think this was on
> purpose, because the 
> query should not access any tables in the database,
> but just return the 
> current date. Maybe we could use the JDOHelper as
> the candidate class in 
> this case? This would be something similar to the
> DUAL table in oracle.
> 
> Regards Michael
> > Your 1st requirement is to retrieve the date on
> the client. A 2nd requirement
> > would be comparisons over database server date.
> >
> > I have one sample for the 2nd requirement
> >
> > Query query = newQuery("select from Person where
> startDate > new Date()");
> >
> >
> > Quoting Jörg von Frantzius
> <joerg.von.frantzius@artnology.com>:
> >
> >   
> >> Hi Craig,
> >>
> >> I'm not so sure whether this is really what you
> want to see, but here's
> >> something:
> >>
> >>     Query query = newQuery("new Date()");
> >>    
> query.setResultClass(java.sql.Timestamp.class);
> >>     query.setUnique(true);
> >>     Date result = (Date)timeQuery.execute();
> >>
> >>
> >> That result Date can then be used to e.g. set an
> updated object's
> >> lastModification timestamp before committing it.
> >>
> >> Regards,
> >> Jörg
> >>
> >> Craig L Russell schrieb:
> >>     
> >>> Hi Jörg,
> >>>
> >>> Sorry to exercise you more on this, but I'm
> still having a bit of
> >>> difficulty seeing how to use this feature.
> >>>
> >>> Could you please give us an example of the use
> case you describe
> >>> below? I'd like to see the JDOQL query that uses
> new Date() in action.
> >>>
> >>> Thanks!
> >>>
> >>> Craig
> >>>
> >>> On Oct 19, 2006, at 1:33 AM, Jörg von Frantzius
> wrote:
> >>>
> >>>       
> >>>> Hello Craig,
> >>>>
> >>>> as far as I can see that does satisfy our
> requirements. Once we are
> >>>> able to query for that date in JDOQL, we can
> use it e.g. for
> >>>> lastmodification timestamps and the like.
> >>>>
> >>>> Regards,
> >>>> Jörg
> >>>>
> >>>> Craig L Russell schrieb:
> >>>>         
> >>>>> It's easy enough to define "new Date()" as
> being evaluated on the
> >>>>> back end for queries that are executed on the
> back end. And being
> >>>>> evaluated in the vm for queries that have a
> bound candidateCollection.
> >>>>>
> >>>>> But does this satisfy the requirements? Once
> you have a Date in
> >>>>> JDOQL, what can you do with it?
> >>>>>
> >>>>> Craig
> >>>>>
> >>>>> On Oct 16, 2006, at 11:58 AM, Erik Bengtson
> wrote:
> >>>>>
> >>>>>           
> >>>>>> +1. maybe "new Date()" could be the
> expression where evaluation
> >>>>>> occurs on the
> >>>>>> database.
> >>>>>>
> >>>>>> Quoting Jörg von Frantzius
> <joerg.von.frantzius@artnology.com>:
> >>>>>>
> >>>>>>             
> >>>>>>> Dear experts,
> >>>>>>>
> >>>>>>> there had been several occasions where in
> our applications we had to
> >>>>>>> determine the database server's current
> time(-stamp). In one
> >>>>>>> application
> >>>>>>> we needed it to synchronize sent JMS
> messages with visibility of
> >>>>>>> commits
> >>>>>>> in the database, and in another we need it
> for our simple replication
> >>>>>>> algorithm.
> >>>>>>>
> >>>>>>> In distributed systems in general it is
> often crucial for
> >>>>>>> synchronization purposes to have a common
> source of time information
> >>>>>>> that is accessible from all processes.
> >>>>>>>
> >>>>>>> It would be great if JDO2 could offer a way
> of doing that
> >>>>>>> independently
> >>>>>>> of the database, e.g. as a JDOQL function.
> >>>>>>>
> >>>>>>>
> >>>>>>> Regards,
> >>>>>>> Jörg
> >>>>>>>
> >>>>>>>               
> >>>>>>
> >>>>>>             
> >>>>> Craig Russell
> >>>>> Architect, Sun Java Enterprise System
> http://java.sun.com/products/jdo
> >>>>> 408 276-5638 mailto:Craig.Russell@sun.com
> >>>>> P.S. A good JDO? O, Gasp!
> >>>>>
> >>>>>           
> >>> Craig Russell
> >>> Architect, Sun Java Enterprise System
> http://java.sun.com/products/jdo
> >>> 408 276-5638 mailto:Craig.Russell@sun.com
> >>> P.S. A good JDO? O, Gasp!
> >>>
> >>>       
> >>     
> >
> >
> >   
> 
> 
> -- 
> Michael Bouschen		Tech@Spree Engineering GmbH
> mailto:mbo.tech@spree.de	http://www.tech.spree.de/
> Tel.:++49/30/235 520-33		Buelowstr. 66			
> Fax.:++49/30/2175 2012		D-10783 Berlin			
> 
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Mime
View raw message