openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Craig L Russell <Craig.Russ...@Sun.COM>
Subject Re: @Column with precision and scale - how does it work?
Date Tue, 10 Apr 2007 22:20:02 GMT
According to the Persistence specification, the @Column annotation says:

int precision (Optional) The precision for a decimal (exact
numeric)column.(Appliesonlyifadecimalcolumn is used.)
0 (Value must be set by
int scale (Optional) The scale for a decimal (exact
numeric)column.(Appliesonlyifadecimalcolumn is used.)

So unless you are using an exact numeric type for your column  
(NUMERIC or DECIMAL) a JPA provider should simply ignore the type.

The intent of this part of the specification is not to provide some  
field-level behavior, for example to convert the data on its way to  
or from the database, but simply to give the provider some  
information that would allow it to create a reasonable column type  
for schema creation.


On Apr 10, 2007, at 2:59 PM, Michael Dick wrote:

> I'm sorry, I misunderstood your question.
> I'm afraid I don't know how we determine when to apply the scale and
> precision.
> In this case the value should be ignored, since there's no way to  
> set it on
> the column. If the attribute was of type BigDecimal then I think the
> precision and scale should apply.
> The catch here is that it looks like we're mapping BigDecimal to  
> that won't work. I'll have to take a closer look to determine where  
> that
> mapping occurs, and what the correct mapping(s) should be.
> Would you mind opening a JIRA report for the problem?
> -Mike
> On 4/10/07, Jacek Laskowski <> wrote:
>> On 4/10/07, Michael Dick <> wrote:
>> > I don't think Derby supports specifying the precision on type  
>> (maybe
>> > other datbases do).
>> You're right - it doesn't.
>> > You should be able to specify the precision through the @Column
>> annotation.
>> > I believe @Column(columnDefinition="DECIMAL(5,2)") will
>> > work.
>> DECIMAL is a synonim of NUMERIC and either works well.
>> > I'm not sure whether precision=x, scale=y with a type that maps to
>> > DECIMAL instead of DOUBLE.
>> That's my question how OpenJPA recognizes whether the attributes
>> should be used or not. I don't think precision and scale are not used
>> at all.
>> Jacek
>> --
>> Jacek Laskowski

Craig Russell
Architect, Sun Java Enterprise System
408 276-5638
P.S. A good JDO? O, Gasp!

View raw message