Re: Dates inserted into Oracle do not have Minutes / Seconds?

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Tue Nov 29 2005 - 11:22:58 EST

  • Next message: Joseph Hannon: "Re: Please help: retrieval and proper usage of per thread DataContext"

    Ok, I'll go ahead with this. Besides I am planning a smaller change.
    I wasn't going (yet) to change types.xml, something that would affect
    *schema generation*. I just wanted to add logic for special handling
    of Oracle DATE during *reverse-engineering*, as this type still
    stores date+time on Oracle 9-10 the same way it did before on Oracle 8.

    Andrus

    On Nov 29, 2005, at 7:10 PM, Mike Kienenberger wrote:

    > As I pointed out earlier, the problem is that it depends on what
    > version of Oracle you're using :)
    >
    > I think the switchover was between 8 and 9, so supporting Oracle 9 and
    > 10 by default is probably a better choice these days. I don't have a
    > problem with whatever defaults we go with because they're just
    > defaults and can be changed.
    >
    > On 11/29/05, Andrus Adamchik <andru..bjectstyle.org> wrote:
    >> Ok, I got it. I guess I haven't followed the thread from the
    >> beginning. The problem with reverse engineering is that Oracle JDBC
    >> driver does return the type as Types.DATE and there is no other hint
    >> for Cayenne to make the right decision.
    >>
    >> Mike and others, how do you feel about changing OracleAdapter to
    >> always treat Oracle DATE as JDBC TIMESTAMP? Logically it makes sense,
    >> as it seems like Oracle does not have a data type that can store date
    >> but can't store time.
    >>
    >> Andrus
    >>
    >>
    >> On Nov 29, 2005, at 12:49 AM, Ingo Feulner wrote:
    >>
    >>> Well, the problem is, that at the first creation of a map out of an
    >>> existing Oracle database the Oracle DATE field is mapped to the
    >>> JDBC DATE type, which means that information (i.e. the time) is
    >>> lost (what might not be expected if you're coming from the Oracle
    >>> side).
    >>>
    >>> - Ingo.
    >>>
    >>> Am 28.11.2005 um 21:42 schrieb Andrus Adamchik:
    >>>
    >>>> I don't understand why you consider this a bug. If you map it in
    >>>> the Modeler using *JDBC* DATE type, expect the time part to be
    >>>> lost.
    >>>>
    >>>> Meanings of JDBC types are well defined in the spec, independent
    >>>> from the underlying database. In other words if Oracle happens to
    >>>> call this type a "DATE", it still should be treated as TIMESTAMP
    >>>> on the JDBC end. So if you want date+time info be saved, you
    >>>> should be using TIMESTAMP in Cayenne mapping (that is based on
    >>>> JDBC). And you are free to use any compatible native database type
    >>>> with it.
    >>>>
    >>>> Andrus
    >>>>
    >>>>
    >>>> On Nov 28, 2005, at 10:35 PM, Ingo Feulner wrote:
    >>>>
    >>>>> Hi,
    >>>>>
    >>>>> meanwhile I "solved" this issue. Problem is, that the DBAttribute
    >>>>> mapping of a DATE Column maps to to DATE in the model, and not to
    >>>>> TIMESTAMP.
    >>>>> There is a class
    >>>>> org.objectstyle.cayenne.access.types.UtilDateType which checks
    >>>>> the DBAttribute and converts a java.util.Date then to the
    >>>>> appropriate jdbc class.
    >>>>> But Oracle allows by default to save date + time in a DATE type,
    >>>>> so I would consider this as a bug.
    >>>>>
    >>>>> What do you think?
    >>>>>
    >>>>> Regards, Ingo.
    >>>>>
    >>>>>
    >>>>> Am 24.11.2005 um 19:55 schrieb Ingo Feulner:
    >>>>>
    >>>>>> Hi,
    >>>>>>
    >>>>>> all our inserted dates into an Oracle (10gR2) database are
    >>>>>> missing the
    >>>>>> minutes and seconds.
    >>>>>> The mapping is DB Type DATE to java.util.Date
    >>>>>> Is there a known issue (JDBC driver, NLS_LANG settings, whatever)
    >>>>>> (Haven't found one...).
    >>>>>>
    >>>>>> We're using Cayenne 1.1.3.
    >>>>>>
    >>>>>> Thanks for any help, Ingo.
    >>>>>>
    >>>>>>
    >>>>>
    >>>>>
    >>>>
    >>>>
    >>>
    >>>
    >>
    >>
    >



    This archive was generated by hypermail 2.0.0 : Tue Nov 29 2005 - 11:23:00 EST