[jbossseam-issues] [JBoss JIRA] Commented: (JBSEAM-596) seam-gen not generating annotation for BigDecimal fields appropriately

Cheng Lee (JIRA) jira-events at jboss.com
Thu Dec 14 15:13:46 EST 2006


    [ http://jira.jboss.com/jira/browse/JBSEAM-596?page=comments#action_12348767 ] 
            
Cheng Lee commented on JBSEAM-596:
----------------------------------

No, it has never worked before because seam-gen does not generate scale attribute in the Column annotation. Apparently scale defaults to 0 when not present. I think the problem is seam-gen not generating "scale = 2".


--- Diagnostic data --- 

Table: 

CREATE TABLE `price` ( 
`id` int(11) NOT NULL auto_increment, 
`nu_value` double(10,2) NOT NULL, 
`dt_start_date` datetime NOT NULL, 
`product_id` int(11) NOT NULL, 
`bb` decimal(10,2) NOT NULL, 
PRIMARY KEY (`id`), 
UNIQUE KEY `id` (`id`), 
KEY `FK65FB149F4F19D32` (`product_id`), 
CONSTRAINT `FK65FB149F4F19D32` FOREIGN KEY (`product_id`) REFERENCES `product` (`product_id`) 
) ENGINE=InnoDB DEFAULT CHARSET=utf8 

Java POJO's column mapping (using seam.bat generate-entities): 

@Column(name = "bb", nullable = false, precision = 10) 
@NotNull 
public BigDecimal getBb() { 
return this.bb; 
} 

public void setBb(BigDecimal bb) { 
this.bb = bb; 
} 

Here is my configuration: 
JBoss-seam-1.1.0.CR2 
JBoss-4.0.5.GA (EJB3 clustered profile) 
MySQL 5.0

Problem: Mapping MySQL DECIMAL to java's BigDecimal, results into failed deployment. Message below: 

javax.persistence.PersistenceException: org.hibernate.HibernateException: Wrong column type: bb, expected: numeric(10,0) 
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:698) 
at org.hibernate.ejb.HibernatePersistence.createContainerEntityManagerFactory(HibernatePersistence.java:127) 
at org.jboss.ejb3.entity.PersistenceUnitDeployment.start(PersistenceUnitDeployment.java:264) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:585) 
at org.jboss.ejb3.ServiceDelegateWrapper.startService(ServiceDelegateWrapper.java:102) 
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289) 
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:585) 
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) 
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978) 
at $Proxy0.start(Unknown Source) 
at org.jboss.system.ServiceController.start(ServiceController.java:417) 
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:585) 
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) 
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 
at $Proxy159.start(Unknown Source) 
at org.jboss.ejb3.JmxKernelAbstraction.install(JmxKernelAbstraction.java:96) 
at org.jboss.ejb3.Ejb3Deployment.startPersistenceUnits(Ejb3Deployment.java:467) 
at org.jboss.ejb3.Ejb3Deployment.start(Ejb3Deployment.java:317) 
at org.jboss.ejb3.Ejb3Module.startService(Ejb3Module.java:91) 
at org.jboss.system.ServiceMBeanSupport.jbossInternalStart(ServiceMBeanSupport.java:289) 
at org.jboss.system.ServiceMBeanSupport.jbossInternalLifecycle(ServiceMBeanSupport.java:245) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:585) 
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) 
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
at org.jboss.system.ServiceController$ServiceProxy.invoke(ServiceController.java:978) 
at $Proxy0.start(Unknown Source) 
at org.jboss.system.ServiceController.start(ServiceController.java:417) 
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:585) 
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
at org.jboss.mx.server.Invocation.invoke(Invocation.java:86) 
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 
at $Proxy35.start(Unknown Source) 
at org.jboss.ejb3.EJB3Deployer.start(EJB3Deployer.java:449) 
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:585) 
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) 
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) 
at org.jboss.mx.interceptor.DynamicInterceptor.invoke(DynamicInterceptor.java:97) 
at org.jboss.system.InterceptorServiceMBeanSupport.invokeNext(InterceptorServiceMBeanSupport.java:238) 
at org.jboss.ws.integration.jboss.DeployerInterceptor.start(DeployerInterceptor.java:92) 
at org.jboss.deployment.SubDeployerInterceptorSupport$XMBeanInterceptor.start(SubDeployerInterceptorSupport.java:188) 
at org.jboss.deployment.SubDeployerInterceptor.invoke(SubDeployerInterceptor.java:95) 
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 
at $Proxy36.start(Unknown Source) 
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1025) 
at org.jboss.deployment.MainDeployer.start(MainDeployer.java:1015) 
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:819) 
at org.jboss.deployment.MainDeployer.deploy(MainDeployer.java:782) 
at sun.reflect.GeneratedMethodAccessor13.invoke(Unknown Source) 
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) 
at java.lang.reflect.Method.invoke(Method.java:585) 
at org.jboss.mx.interceptor.ReflectedDispatcher.invoke(ReflectedDispatcher.java:155) 
at org.jboss.mx.server.Invocation.dispatch(Invocation.java:94) 
at org.jboss.mx.interceptor.AbstractInterceptor.invoke(AbstractInterceptor.java:133) 
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
at org.jboss.mx.interceptor.ModelMBeanOperationInterceptor.invoke(ModelMBeanOperationInterceptor.java:142) 
at org.jboss.mx.server.Invocation.invoke(Invocation.java:88) 
at org.jboss.mx.server.AbstractMBeanInvoker.invoke(AbstractMBeanInvoker.java:264) 
at org.jboss.mx.server.MBeanServerImpl.invoke(MBeanServerImpl.java:659) 
at org.jboss.mx.util.MBeanProxyExt.invoke(MBeanProxyExt.java:210) 
at $Proxy6.deploy(Unknown Source) 
at org.jboss.deployment.scanner.URLDeploymentScanner.deploy(URLDeploymentScanner.java:421) 
at org.jboss.deployment.scanner.URLDeploymentScanner.scan(URLDeploymentScanner.java:610) 
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.doScan(AbstractDeploymentScanner.java:263) 
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.loop(AbstractDeploymentScanner.java:274) 
at org.jboss.deployment.scanner.AbstractDeploymentScanner$ScannerThread.run(AbstractDeploymentScanner.java:225) 
Caused by: org.hibernate.HibernateException: Wrong column type: bb, expected: numeric(10,0) 
at org.hibernate.mapping.Table.validateColumns(Table.java:251) 
at org.hibernate.cfg.Configuration.validateSchema(Configuration.java:1007) 
at org.hibernate.tool.hbm2ddl.SchemaValidator.validate(SchemaValidator.java:116) 
at org.hibernate.impl.SessionFactoryImpl.(SessionFactoryImpl.java:317) 
at org.hibernate.cfg.Configuration.buildSessionFactory(Configuration.java:1218) 
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:691) 
... 101 more 


> seam-gen not generating annotation for BigDecimal fields appropriately
> ----------------------------------------------------------------------
>
>                 Key: JBSEAM-596
>                 URL: http://jira.jboss.com/jira/browse/JBSEAM-596
>             Project: JBoss Seam
>          Issue Type: Bug
>    Affects Versions: 1.1.0.GA, 1.1.0.CR2
>            Reporter: Cheng Lee
>         Assigned To: Max Andersen
>             Fix For: 1.1.1.GA
>
>
> As of JBoss SEAM 1.1.0 CR2 the seam reverse engineering tool ("seam.bat generate-entities") is not generating the appropriate annotation for BigDecimal. Precision is generated but Scale is omitted therefore gives the following exception while deploying:
> javax.persistence.PersistenceException: org.hibernate.HibernateException: Wrong column type: bb, expected: numeric(10,0)
> Should have generated this:
> @Column(name = "bb", nullable = false, precision = 10, scale = 2)
> instead of:
> @Column(name = "bb", nullable = false, precision = 10) 

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.jboss.com/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the seam-issues mailing list