Hi,

How about setting StoreCharsAsNumbers DBDictionary property to "false"? By 
default, OpenJPA stores char values in a numeric column on most databases.

<property name="openjpa.jdbc.DBDictionary" value="storeCharsAsNumbers=false"/>

Greetings,
Milosz

> 
> Hi,
> 
> We managed to map enum using ordinal to CHAR column, but when we configure
> Update manager so that it uses database constraints into account when saving
> entities (by setting openjpa.jdbc.UpdateManager to constraint) we get
> following exception:
> 
> 
> Caused by: org.apache.openjpa.persistence.ArgumentException:
> "hr.apisit.b24.ziisc.b2g.service.model.messagebox.CustomsMessage.status"
> declares a column that is not compatible with the expected type "smallint". 
> Column details:
> Full Name: CARTZIISC_B2G_CUSTOMS_MSG.STATUS_FLAG
> Type: char
> Size: 1
> Default: null
> Not Null: true
> 
>       at
> org.apache.openjpa.jdbc.meta.MappingInfo.mergeColumn(MappingInfo.java:775)
>       at
> org.apache.openjpa.jdbc.meta.MappingInfo.createColumns(MappingInfo.java:593)
>       at
> org.apache.openjpa.jdbc.meta.ValueMappingInfo.getColumns(ValueMappingInfo.java:178)
>       at
> org.apache.openjpa.jdbc.meta.strats.HandlerStrategies.map(HandlerStrategies.java:65)
>       at
> org.apache.openjpa.jdbc.meta.strats.HandlerFieldStrategy.map(HandlerFieldStrategy.java:81)
>       at
> org.apache.openjpa.jdbc.meta.FieldMapping.setStrategy(FieldMapping.java:146)
>       at
> org.apache.openjpa.jdbc.meta.RuntimeStrategyInstaller.installStrategy(RuntimeStrategyInstaller.java:82)
>       at
> org.apache.openjpa.jdbc.meta.FieldMapping.resolveMapping(FieldMapping.java:496)
>       at 
> org.apache.openjpa.jdbc.meta.FieldMapping.resolve(FieldMapping.java:461)
>       at
> org.apache.openjpa.jdbc.meta.ClassMapping.resolveNonRelationMappings(ClassMapping.java:894)
> 
> 
> Is there a way to tell openjpa to use CHAR instead of SMALLINT when saving
> java enums with ordinal?
> 

Reply via email to