When SychronizeMappings is set to buildSchema, as it always is for me (in head-down development mode), every run of unit tests or app server is prefaced by a large collection of spurious warnings. A specimen:
3635  myproj   WARN   [http-8080-Processor24] openjpa.jdbc.Schema - Existing column "id" on table "public.share" is incompatible with the same column in the given schema definition. Existing column:
Full Name: share.id
Type: char
Size: 32
Default: null
Not Null: true
Given column:
Full Name: Share.id
Type: varchar
Size: 255
Default: null
Not Null: true
Now, the existing column was, of course, originally created (correctly) as a char(32) by the same schema update routine, thanks to the following annotation on the field in question:
 @GeneratedValue(generator = "uuid-hex")
 @Column(columnDefinition = "char(32)")
 public String getId()
  return id;
Why does the schema sync complain? I have tried asking the sync to read schema, a la
<property name="openjpa.jdbc.SynchronizeMappings"
    value="buildSchema(ReadSchema=true)" />
but it made no difference.