Viva,
Estou tentando realizar uma aplicação que deve fazer uso de uma tabela SQL.
Tenho a ligação correctamente configurada mas quando tento por a correr no JBoss ele devolve o seguinte erro
12:17:31,910 INFO [TableMetadata] columns: [dias_ferias, dias_suplement, dias_por_gozar, dias_antig, numero, obs, data_login, ano, login, dias_descontados, dias_gozados, rowid, dias_acumulados, dias_idade]
12:17:31,910 WARN [ServiceController] Problem starting service persistence.units:ear=seamFerias-ear.ear,unitName=seamFerias
javax.persistence.PersistenceException: [PersistenceUnit: seamFerias] Unable to build EntityManagerFactory
at org.hibernate.ejb.Ejb3Configuration.buildEntityManagerFactory(Ejb3Configuration.java:677)
...
at org.jboss.Main$1.run(Main.java:508)
at java.lang.Thread.run(Unknown Source)
Caused by: org.hibernate.HibernateException: Wrong column type in PES.dbo.FuncFerias for column dias_acumulados. Found: decimal, expected: numeric(19,2)
at org.hibernate.mapping.Table.validateColumns(Table.java:284)
A coluna da tabela é do tipo decimal(5,2) e o campo do entity que deve receber o seu valor é do tipo BigDecimal mas o Hibernate diz-me que é do tipo Numeric(19,2). Penso que este erro terá a ver com o facto de no ficheiro Dialect do Hibernate estar definido da seguinte forma:
...
registerHibernateType( Types.NUMERIC, Hibernate.BIG_DECIMAL.getName() );
registerHibernateType( Types.DECIMAL, Hibernate.BIG_DECIMAL.getName() );
...
Daí a possível confusão?
Alguem sabe como resolver este problema?
JBoss 4.2.3 com Seam 2.1 e Hibernate usando o Eclipse 3.4.1 Ganymede