Re: Problems with Date in Cayenne 2.0.4

From: Mike Kienenberger (mkienen..mail.com)
Date: Wed Jan 28 2009 - 13:04:36 EST

  • Next message: Alessio Giovanni Baroni: "Re: Problems with Date in Cayenne 2.0.4"

    Don't know if it'll apply in your situation, but make sure you've got
    the most recent oracle drivers. In the past, I saw the behavior
    change depending on what driver I was using. I also switched all of
    my DATE fields to TIMESTAMPs in the end.

    On Wed, Jan 28, 2009 at 12:31 PM, Alessio Giovanni Baroni
    <alessiogiovanni.baron..mail.com> wrote:
    > Nothing, returns an exception ("getTimestamp is not valid for getT4CNumber
    > .....").
    > If I use "TO_CHAR", there is another problem, because when I do get(...)
    > from DataObject, Cayenne execute
    > a query, not equal as the query in ctxt.performQuery(Bar.class,
    > "SELEC........"); Cayenne not save the TO_CHAR!
    >
    > Help?
    >
    > Thanks.
    >
    >
    > 2009/1/28 Andrus Adamchik <andru..bjectstyle.org>
    >
    >> java.sql.Timestamp extends java.util.Date, so it is ok.
    >>
    >> (and in any event doublecheck that the column in a table for the Bar entity
    >> is mapped as TIMESTAMP).
    >>
    >> Andrus
    >>
    >>
    >> On Jan 28, 2009, at 5:34 PM, Alessio Giovanni Baroni wrote:
    >>
    >> But if I have SQLTemplate(Bar.class, .....), and in class Bar I set the
    >>> field Foo as Date, isn't an error cast it to java.lang.Timestamp??
    >>>
    >>> Thanks.
    >>>
    >>>
    >>> 2009/1/28 Andrus Adamchik <andru..bjectstyle.org>
    >>>
    >>> My (admittedly novice) solution was to map it via Modeler to a TIMESTAMP.
    >>>>
    >>>>>
    >>>>>
    >>>>
    >>>> This is actually a correct solution. Only if I am not mistaken it doesn't
    >>>> work 100% on 2.0.x (IIRC it works for SelectQuery, but not SQLTemplate).
    >>>> In
    >>>> 3.0 it should work with SQLTemplate as well.
    >>>>
    >>>> Andrus
    >>>>
    >>>>
    >>>>
    >>>> On Jan 28, 2009, at 5:12 PM, Joe Baldwin wrote:
    >>>>
    >>>> Andrus,
    >>>>
    >>>>>
    >>>>> I looked up the Oracle Date definition and it does in fact keep time
    >>>>> info
    >>>>> in the database. My (admittedly novice) solution was to map it via
    >>>>> Modeler
    >>>>> to a TIMESTAMP. Does this reveal the same problem with the Oracle
    >>>>> adapter
    >>>>> as mapping it via Modeler-DATE?
    >>>>>
    >>>>> Joe
    >>>>>
    >>>>>
    >>>>> On Jan 28, 2009, at 9:58 AM, Andrus Adamchik wrote:
    >>>>>
    >>>>> I guess that's how Oracle driver returns the metadata for the DATE
    >>>>> column
    >>>>>
    >>>>>> in the ResultSet. The workaround is to use #result() directive in the
    >>>>>> SQL:
    >>>>>>
    >>>>>> http://cayenne.apache.org/doc20/scripting-sqltemplate.html
    >>>>>>
    >>>>>> Hope this helps,
    >>>>>>
    >>>>>> Andrus
    >>>>>>
    >>>>>> On Jan 28, 2009, at 4:48 PM, Alessio Giovanni Baroni wrote:
    >>>>>>
    >>>>>> Hi to all,
    >>>>>>
    >>>>>>> I have the following code:
    >>>>>>>
    >>>>>>> .............
    >>>>>>> query = new SQLTemplate("SELECT FOO FROM BAR");
    >>>>>>> results = ctxt.performQuery(Bar.class, query);
    >>>>>>> for(int i = 0; i < results.size() - 1; ++i)
    >>>>>>> {
    >>>>>>> Bar f = (Bar)results.get(i);
    >>>>>>> ...... (f.getFoo());
    >>>>>>> ....................
    >>>>>>> }
    >>>>>>>
    >>>>>>> In the Oracle DB the field FOO is a DATE and I map it to
    >>>>>>> java.util.Date.
    >>>>>>> When I do .getFoo(), the date that I have is without the
    >>>>>>> hours/minutes/seconds.
    >>>>>>> Why? How do I resolve it?
    >>>>>>>
    >>>>>>> Thanks.
    >>>>>>>
    >>>>>>>
    >>>>>>
    >>>>>>
    >>>>>
    >>>>>
    >>>>
    >>
    >



    This archive was generated by hypermail 2.0.0 : Wed Jan 28 2009 - 13:05:06 EST