Hi All,

I was able to resolve this problem by setting the following property
<property name="openjpa.jdbc.DBDictionary"
value="postgres(StoreCharsAsNumbers=false)"/>

Thanks
Ashish

On Fri, Jun 12, 2009 at 7:22 PM, Donald Woods <[email protected]> wrote:

> Still looking for more details, like code snippets from the entity to help
> determine where this BigDecimal is being used...
>
> @Entity(name = "simple")
> @Table(name = "SIMPLE_ENTITY")
> public class SimpleEntity implements Serializable {
>
>    @Id
>    @GeneratedValue
>    @Column(name = "ID")
>    private long id;
>
>    @Basic
>    @Column(name = "NAME")
>    private String name;
>
>    @Basic
>    @Column(name = "VALUE")
>    private String value;
>
>
>
>
> -Donald
>
> Ashish Jain wrote:
>
>> Hi Donald,
>> There is no associated orm.xml in the applicaiton.Annotations in
>> Stockingpoint entity are @Table, @NamedQueries, @ManyToOne @JoinColumn,
>> @Temporal
>>
>> Thanks
>> Ashish
>>
>> On Thu, Jun 11, 2009 at 10:26 PM, Donald Woods <[email protected]> wrote:
>>
>>  Can you provide more details on the Stockingpoint entity being used, like
>>> the orm.xml or annotations?
>>>
>>>
>>> -Donald
>>>
>>>
>>>
>>> Ashish Jain wrote:
>>>
>>>  Hi All,
>>>>
>>>> I am using apache geronimo v2.1.4 which is bundled with openJPA 1.2.1
>>>> and
>>>> postgresql 8.5.3. while running an applicaiton which is based on JSF and
>>>> EJB's I get the following error.
>>>>
>>>>
>>>> 2009-06-11 16:19:58,417 TRACE [Runtime] An exception occurred while
>>>> ending
>>>> the transaction. This exception will be re-thrown.
>>>> <openjpa-1.0.3-r420667:677674 nonfatal store error>
>>>> org.apache.openjpa.util.StoreException: Bad value for type BigDecimal :
>>>> Y
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.jdbc.sql.DBDictionary.newStoreException(DBDictionary.java:3951)
>>>> at
>>>>
>>>> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:97)
>>>> at
>>>>
>>>> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:83)
>>>> at
>>>>
>>>> org.apache.openjpa.jdbc.sql.SQLExceptions.getStore(SQLExceptions.java:59)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:491)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.DelegatingStoreManager.load(DelegatingStoreManager.java:116)
>>>> at
>>>> org.apache.openjpa.kernel.ROPStoreManager.load(ROPStoreManager.java:78)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.StateManagerImpl.loadFields(StateManagerImpl.java:2886)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.StateManagerImpl.loadField(StateManagerImpl.java:2964)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1586)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
>>>> at org.apache.openjpa.kernel.BrokerImpl.setDirty(BrokerImpl.java:3844)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.StateManagerImpl.setPCState(StateManagerImpl.java:207)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1546)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.StateManagerImpl.dirty(StateManagerImpl.java:1485)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.StateManagerImpl.dirtyCheck(StateManagerImpl.java:808)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.dirtyCheck(BrokerImpl.java:4621)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.BrokerImpl$ManagedCache.access$000(BrokerImpl.java:4361)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.BrokerImpl.hasTransactionalObjects(BrokerImpl.java:3740)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.BrokerImpl.getTransactionalStates(BrokerImpl.java:3729)
>>>> at org.apache.openjpa.kernel.BrokerImpl.flush(BrokerImpl.java:1872)
>>>> at org.apache.openjpa.kernel.BrokerImpl.flushSafe(BrokerImpl.java:1853)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.kernel.BrokerImpl.beforeCompletion(BrokerImpl.java:1771)
>>>> at
>>>>
>>>>
>>>> org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:514)
>>>> at
>>>>
>>>>
>>>> org.apache.geronimo.transaction.manager.TransactionImpl.beforeCompletion(TransactionImpl.java:499)
>>>> at
>>>>
>>>>
>>>> org.apache.geronimo.transaction.manager.TransactionImpl.rollback(TransactionImpl.java:472)
>>>> at
>>>>
>>>>
>>>> org.apache.geronimo.transaction.manager.TransactionManagerImpl.rollback(TransactionManagerImpl.java:258)
>>>> at
>>>>
>>>>
>>>> org.apache.openejb.core.transaction.TransactionPolicy.rollbackTransaction(TransactionPolicy.java:183)
>>>> at
>>>>
>>>>
>>>> org.apache.openejb.core.transaction.TxRequired.afterInvoke(TxRequired.java:78)
>>>> at
>>>>
>>>>
>>>> org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:233)
>>>> at
>>>>
>>>>
>>>> org.apache.openejb.core.stateless.StatelessContainer._invoke(StatelessContainer.java:188)
>>>> at
>>>>
>>>>
>>>> org.apache.openejb.core.stateless.StatelessContainer.invoke(StatelessContainer.java:165)
>>>> at
>>>>
>>>>
>>>> org.apache.openejb.core.ivm.EjbObjectProxyHandler.businessMethod(EjbObjectProxyHandler.java:217)
>>>> at
>>>>
>>>>
>>>> org.apache.openejb.core.ivm.EjbObjectProxyHandler._invoke(EjbObjectProxyHandler.java:77)
>>>> at
>>>>
>>>>
>>>> org.apache.openejb.core.ivm.BaseEjbProxyHandler.invoke(BaseEjbProxyHandler.java:245)
>>>> at
>>>>
>>>>
>>>> org.apache.openejb.util.proxy.Jdk13InvocationHandler.invoke(Jdk13InvocationHandler.java:49)
>>>> at $Proxy21.findByInsAndType(Unknown Source)
>>>> at
>>>>
>>>>
>>>> com.tnhsp.mbeans.biomedicalwaste.wasteDetailsMBean.getStockingpointList(wasteDetailsMBean.java:1658)
>>>> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> at
>>>>
>>>>
>>>> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:45)
>>>> at
>>>>
>>>>
>>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37)
>>>> at java.lang.reflect.Method.invoke(Method.java:599)
>>>> at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
>>>> at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
>>>> at
>>>>
>>>>
>>>> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.access$301(FacesCompositeELResolver.java:46)
>>>> at
>>>>
>>>>
>>>> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver$4.invoke(FacesCompositeELResolver.java:108)
>>>> at
>>>>
>>>>
>>>> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.invoke(FacesCompositeELResolver.java:148)
>>>> at
>>>>
>>>>
>>>> org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:104)
>>>> at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
>>>> at
>>>> org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
>>>> at
>>>>
>>>>
>>>> org.apache.jasper.el.JspValueExpression.getValue(JspValueExpression.java:101)
>>>> at javax.faces.component.UIData.getValue(UIData.java:978)
>>>> at javax.faces.component.UIData.createDataModel(UIData.java:758)
>>>> at javax.faces.component.UIData.getDataModel(UIData.java:732)
>>>> at javax.faces.component.UIData.getRowCount(UIData.java:174)
>>>> at
>>>>
>>>>
>>>> org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeInnerHtml(HtmlTableRendererBase.java:235)
>>>> at
>>>>
>>>>
>>>> org.apache.myfaces.shared_impl.renderkit.html.HtmlTableRendererBase.encodeChildren(HtmlTableRendererBase.java:137)
>>>> at
>>>>
>>>>
>>>> javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:594)
>>>> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:239)
>>>> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:246)
>>>> at javax.faces.component.UIComponent.encodeAll(UIComponent.java:246)
>>>> at
>>>>
>>>>
>>>> org.apache.myfaces.application.jsp.JspViewHandlerImpl.actuallyRenderView(JspViewHandlerImpl.java:424)
>>>> at
>>>>
>>>>
>>>> org.apache.myfaces.application.jsp.JspViewHandlerImpl.renderView(JspViewHandlerImpl.java:380)
>>>> at
>>>>
>>>>
>>>> org.ajax4jsf.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:100)
>>>> at
>>>>
>>>>
>>>> org.ajax4jsf.application.AjaxViewHandler.renderView(AjaxViewHandler.java:176)
>>>> at
>>>>
>>>>
>>>> org.apache.myfaces.lifecycle.RenderResponseExecutor.execute(RenderResponseExecutor.java:41)
>>>> at
>>>>
>>>> org.apache.myfaces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:140)
>>>> at javax.faces.webapp.FacesServlet.service(FacesServlet.java:152)
>>>> at
>>>>
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
>>>> at
>>>>
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>> at SessionFilter.doFilter(SessionFilter.java:43)
>>>> at
>>>>
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>> at
>>>>
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>> at org.ajax4jsf.webapp.BaseXMLFilter.doXmlFilter(BaseXMLFilter.java:178)
>>>> at org.ajax4jsf.webapp.BaseFilter.handleRequest(BaseFilter.java:290)
>>>> at
>>>>
>>>>
>>>> org.ajax4jsf.webapp.BaseFilter.processUploadsAndHandleRequest(BaseFilter.java:368)
>>>> at org.ajax4jsf.webapp.BaseFilter.doFilter(BaseFilter.java:495)
>>>> at
>>>>
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
>>>> at
>>>>
>>>>
>>>> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
>>>> at
>>>>
>>>>
>>>> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
>>>> at
>>>>
>>>>
>>>> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
>>>> at
>>>>
>>>>
>>>> org.apache.geronimo.tomcat.valve.DefaultSubjectValve.invoke(DefaultSubjectValve.java:56)
>>>> at
>>>>
>>>>
>>>> org.apache.geronimo.tomcat.GeronimoStandardContext$SystemMethodValve.invoke(GeronimoStandardContext.java:406)
>>>> at
>>>>
>>>>
>>>> org.apache.geronimo.tomcat.valve.GeronimoBeforeAfterValve.invoke(GeronimoBeforeAfterValve.java:47)
>>>> at
>>>>
>>>>
>>>> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
>>>> at
>>>>
>>>>
>>>> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
>>>> at
>>>>
>>>>
>>>> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>>>> at
>>>>
>>>> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:568)
>>>> at
>>>>
>>>>
>>>> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
>>>> at
>>>>
>>>> org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
>>>> at
>>>>
>>>>
>>>> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
>>>> at
>>>> org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
>>>> at java.lang.Thread.run(Thread.java:735)
>>>> Caused by:
>>>> org.postgresql.util.PSQLException: Bad value for type BigDecimal : Y
>>>> at
>>>>
>>>>
>>>> org.postgresql.jdbc2.AbstractJdbc2ResultSet.toBigDecimal(AbstractJdbc2ResultSet.java:2710)
>>>> at
>>>>
>>>>
>>>> org.postgresql.jdbc2.AbstractJdbc2ResultSet.getBigDecimal(AbstractJdbc2ResultSet.java:2133)
>>>> at
>>>>
>>>>
>>>> org.postgresql.jdbc2.AbstractJdbc2ResultSet.getBigDecimal(AbstractJdbc2ResultSet.java:311)
>>>> at
>>>>
>>>>
>>>> org.tranql.connector.jdbc.ResultSetHandle.getBigDecimal(ResultSetHandle.java:179)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.lib.jdbc.DelegatingResultSet.getBigDecimal(DelegatingResultSet.java:282)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.jdbc.sql.DBDictionary.getBigDecimal(DBDictionary.java:389)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.jdbc.sql.PostgresDictionary.getInt(PostgresDictionary.java:210)
>>>> at
>>>> org.apache.openjpa.jdbc.sql.DBDictionary.getChar(DBDictionary.java:556)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.jdbc.sql.ResultSetResult.getCharInternal(ResultSetResult.java:288)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.jdbc.sql.ResultSetResult.getObjectInternal(ResultSetResult.java:356)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.jdbc.sql.AbstractResult.getObject(AbstractResult.java:662)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.jdbc.meta.strats.HandlerStrategies.loadDataStore(HandlerStrategies.java:205)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy.load(HandlerFieldStrategy.java:172)
>>>> at org.apache.openjpa.jdbc.meta.FieldMapping.load(FieldMapping.java:796)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:833)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:785)
>>>> at
>>>>
>>>>
>>>> org.apache.openjpa.jdbc.kernel.JDBCStoreManager.load(JDBCStoreManager.java:475)
>>>> ... 92 more
>>>>
>>>>
>>>> The error is being thrown when this query is executed.
>>>> 2009-06-11 15:35:44,366 TRACE [SQL] <t 969554378, conn 180619972>
>>>> executing
>>>> prepstmnt 261558167 SELECT t0.st_spom_id, t0.st_spom_crt_dt,
>>>> t0.st_spom_crt_uid, t1.AIS_INSM_CODE, t1.AIS_INSM_TYPE,
>>>> t1.AIS_INSM_BEMONC,
>>>> t1.AIS_INSM_BEMONC_START_DATE, t1.AIS_INSM_BLOCK,
>>>> t1.AIS_INSM_BLOCK_PHC_ATTACHED, t1.AIS_INSM_CEMONC,
>>>> t1.AIS_INSM_CEMONC_START_DATE, t1.AIS_INSM_CRT_DT, t1.AIS_INSM_CRT_UID,
>>>> t1.AIS_INSM_DISTRICT, t1.AIS_INSM_EFFECT_DT,
>>>> t1.AIS_INSM_HSC_DELIVERY_ROOM,
>>>> t1.AIS_INSM_HSC_LAB, t1.AIS_INSM_HSC_TRIBAL_STATUS, t1.AIS_INSM_HUD,
>>>> t1.AIS_INSM_NAME, t1.AIS_INSM_LAST_UPD_DT, t1.AIS_INSM_LAST_UPD_UID,
>>>> t1.AIS_INSM_LOCAL_BODY, t1.AIS_INSM_LOCATION, t1.AIS_INSM_ORGANISAION,
>>>> t1.AIS_INSM_PHC_ATTACHED, t1.AIS_INSM_PHC_DELIVERY_ROOM,
>>>> t1.AIS_INSM_PHC_LAB_STATUS, t1.AIS_INSM_PHC_TRIBAL_STATUS,
>>>> t1.AIS_INSM_STATUS, t1.AIS_INSM_SUB_TYPE, t1.AIS_INSM_TALUK,
>>>> t0.st_spom_last_upd_udt, t0.st_spom_last_upd_uid, t0.st_spom_status,
>>>> t0.st_spom_code, t0.st_spom_desc, t0.st_spom_stocking_point_grade,
>>>> t0.st_spom_type, t0.st_spom_ward_id FROM st_stocking_point_master t0
>>>> LEFT
>>>> OUTER JOIN AIS_INSTITUTION_MASTER t1 ON t0.st_spom_institution =
>>>> t1.AIS_INSM_CODE WHERE (t0.st_spom_institution = ? AND (t0.st_spom_type
>>>> =
>>>> ?
>>>> OR t0.st_spom_type = ? OR t0.st_spom_type = ? OR t0.st_spom_type = ? OR
>>>> t0.st_spom_type = ? OR t0.st_spom_type = ? OR t0.st_spom_type = ?) AND
>>>> t0.st_spom_type IS NOT NULL) [params=(String) 00017, (String) WARD,
>>>> (String)
>>>> OT, (String) OPD, (String) LAB, (String) PHARMACY, (String) ICTC,
>>>> (String)
>>>> DEPT]
>>>>
>>>> I have tried manually executing the query from admin console  of
>>>> geronimo
>>>> and the query runs fine.
>>>>
>>>> I also modified my persistence.xml as follows however result is same
>>>>
>>>> <?xml version="1.0" encoding="UTF-8"?>
>>>> <persistence version="1.0" xmlns="
>>>> http://java.sun.com/xml/ns/persistence";
>>>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>>> xsi:schemaLocation="
>>>> http://java.sun.com/xml/ns/persistence
>>>> http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd";>
>>>> <persistence-unit name="tnhsp-ejbPU" transaction-type="JTA">
>>>> <jta-data-source>live</jta-data-source>
>>>> <property name="openjpa.jdbc.QuerySQLCache" value="false"/>
>>>> <property name="openjpa.jdbc.SynchronizeMappings" value="false"/>
>>>> <property name="openjpa.jdbc.DBDictionary"
>>>> value="org.apache.openjpa.jdbc.sql.PostgresDictionary(Supports
>>>> DeferredConstraints=false)"/>
>>>> <property name="openjpa.TransactionMode" value="managed"/>
>>>> <property name="openjpa.RetryClassRegistration" value="true" />
>>>> <property name="openjpa.ConnectionDriverName"
>>>> value="org.postgresql.Driver"/>
>>>> <properties/>
>>>> </persistence-unit>
>>>> </persistence>
>>>>
>>>>
>>>> Debugging the application code suggests the error is being thrown while
>>>> executing this statement
>>>>
>>>>  this.list = this.em.createQuery("Select p from Stockingpoint p where
>>>> p.institution.institutionCode=:ins and p.stockingType in
>>>> ('WARD','OT','OPD','LAB','PHARMACY','ICTC','DEPT')").setParameter("ins",
>>>> ins).getResultList();
>>>>
>>>>
>>>> Any help in this regard will be very helpful.
>>>>
>>>> Thanks
>>>> Ashish
>>>>
>>>>
>>>>
>>

Reply via email to