openjpa-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Rick Curtis (JIRA)" <j...@apache.org>
Subject [jira] Assigned: (OPENJPA-1224) OpenJPA MySQL BigDecimal ignoring Precision/Scale column Annotation when generating tables
Date Tue, 29 Sep 2009 15:53:16 GMT

     [ https://issues.apache.org/jira/browse/OPENJPA-1224?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Rick Curtis reassigned OPENJPA-1224:
------------------------------------

    Assignee: Rick Curtis

> OpenJPA MySQL BigDecimal ignoring Precision/Scale column Annotation when generating tables

> -------------------------------------------------------------------------------------------
>
>                 Key: OPENJPA-1224
>                 URL: https://issues.apache.org/jira/browse/OPENJPA-1224
>             Project: OpenJPA
>          Issue Type: Bug
>          Components: jpa
>    Affects Versions: 1.2.1
>         Environment: OpenJPA 1.2.1, MySQL 5.1.32 (InnoDB), 
>            Reporter: Christopher Davies
>            Assignee: Rick Curtis
>
> Create an entity with a BigDecimal member. Using runtime enhancement and automatic schema
generation. When OpneJPA creates the table it creates a column of type DECIMAL but will always
ignore the precision set on the column annotation and use the default of (10,0) causing BigDecimal
data to round up to the nearest whole number.
> Sample of basic Entity:
> @Entity
> public class Asset implements Serializable{
> 	private static final long serialVersionUID = 1L;
> 	@Id
>         @GeneratedValue(strategy=SEQUENCE, generator="ASSET_SEQ")
> 	private String uniqueid;
> 	@Column(precision=10,scale=6,)
> 	private BigDecimal rate;
>      
> 	public Asset() {
> 		this.rate = rate;
> 	}
> 	public void setRate(BigDecimal rate) {
> 		this.rate = rate;
> 	}
> 	public BigDecimal getRate() {
> 		return rate;
> 	}
> }
> Code to generate schema and save entity:
> Asset asset = new Asset();
> asset.setRate(BigDecimal bd = new BigDecimal(100.004));
> Now called persist/merge on the entity to generate the table schema and save the entity.
The table is generated and the "rate" column is set to type DECIMAL(10,0) instead of DECIMAL(10,6).
The table create script looks like this:
> DROP TABLE IF EXISTS `trm`.`asset`;
> CREATE TABLE  `trm`.`asset` (
>   `uniqueid` varchar(255) NOT NULL,
>   `rate` decimal(10,0) NOT NULL,
> ) ENGINE=InnoDB DEFAULT CHARSET=latin1;
> doubles work ok.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message