openjpa-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Kevin Sutter <kwsut...@gmail.com>
Subject Re: Timestamp precision question.
Date Wed, 20 Jun 2012 13:28:44 GMT
Good to hear, Yu!

It's kind of strange, but the base units used for timestamps are
Nanoseconds.  So, the DatePrecision specifies what multiplier to use to get
the desired precision.  Multiply Nanos by 1000 and you get Micros.  The
default value for DatePrecision is 1000000, which then translates to Millis.

Kevin

On Wed, Jun 20, 2012 at 4:54 AM, yu wang <wangyumi@gmail.com> wrote:

> Kevin,
> It does work. Thanks! By the way, what does "DatePrecision=1000" mean? Why
> 1000?
>
> Regards,
> Yu Wang
>
>
> On Tue, Jun 19, 2012 at 10:04 PM, Kevin Sutter <kwsutter@gmail.com> wrote:
> > Thanks, Yu, for the clarification.
> >
> > By default, OpenJPA uses Millisecond precision on the date fields (least
> > common denominator).  Some of the data dictionaries have been updated to
> > Microsecond (DB2, Postgres, etc) or even Nanosecond (Ingres).  It looks
> > like the Oracle dictionary is still using the default Millisecond
> > precision.  You can easily update this by modifying the Oracle dictionary
> > as follows:
> >
> > <property name="openjpa.jdbc.DBDictionary"
> value="oracle(DatePrecision=1000)"/>
> >
> > If this does the trick for you and you feel that the default precision
> for
> > the Oracle dictionary should be Microseconds, please file a JIRA [1].
> >
> > Thanks, Kevin
> >
> > [1]  http://openjpa.apache.org/found-a-bug.html
> >
> > On Mon, Jun 18, 2012 at 11:24 PM, yu wang <wangyumi@gmail.com> wrote:
> >
> >> Kevin
> >> Before the field is persisted, I use toString() method of Timestamp
> >> object to print the value of the field, its precision is microsecond.
> >> But when I read the Timestamp field from DB, its precision is
> millisecond.
> >>
> >> I need the precision of this Timestamp filed is microsecond. I am
> >> using ORacle DB and I can insert microsecond Timestamp filed into DB
> >> by SQL directly.
> >>
> >> Thanks,
> >> Yu Wang
> >>
> >> On Mon, Jun 18, 2012 at 9:43 PM, Kevin Sutter <kwsutter@gmail.com>
> wrote:
> >> > Hi Yu,
> >> > Can you clarify your request?    You said that your Timestamp fields
> are
> >> > persisted to the DB at a millisecond level.  But, I'm not following
> your
> >> > "print" comments and microsecond precision level.  After retrieved
> from
> >> the
> >> > DB, are the Timestamps still at a millisecond precision?  Or, are you
> >> > looking to store the Timestamp to the DB at a microsecond precision?
> >> > Various databases have different practices as it comes to Timestamp
> >> > precision.  If you could clarify what your expectations are, maybe
> >> > something can be figured out.  Thanks.
> >> >
> >> > Kevin
> >> >
> >> > On Mon, Jun 18, 2012 at 4:31 AM, yu wang <wangyumi@gmail.com> wrote:
> >> >
> >> >> Hello,
> >> >> I am using OpenJPA 1.2.2 connecting oracle DB.
> >> >> For Timestamp field, the precision is always millisecond level after
> >> >> the filed is persisted into DB, regardless of I print the timestampe
> >> >> filed in java, its precision is microsecond level.
> >> >> Any specific configuration I am not aware of?
> >> >>
> >> >> Below is a sample:
> >> >>        @Basic()
> >> >>        @Column(name="LOGTIME")
> >> >>        public java.sql.Timestamp getLogtime() {
> >> >>                return this.logtime;
> >> >>        }
> >> >>        @Override
> >> >>        public void setLogtime(java.sql.Timestamp logtime) {
> >> >>                this.logtime = logtime;
> >> >>        }
> >> >>
> >> >> Regards,
> >> >> Yu Wang
> >> >>
> >>
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message