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? >
