FYI, the OpenJPA manual documents slightly different behavior:
"2.14. Persistent Field Defaults
In the absence of any of the annotations above, JPA defines the following default behavior for declared fields:
o Fields declared static, transient, or final default to non-persistent.
o Fields of any primitive type, primitive wrapper type, java.lang.String, byte, Byte, char, Character, java.math.BigDecimal, java.math.BigInteger, java.util.Date, java.util.Calendar, java.sql.Date, java.sql.Timestamp, or any Serializable type default to persistent, as if annotated with @Basic.
o Fields of an embeddable type default to persistent, as if annotated with @Embedded.
o All other fields default to non-persistent.
Note that according to these defaults, all relations between entities must be annotated explicitly. Without an annotation, a relation field will default to serialized storage if the related entity type is serializable, or will default to being non-persistent if not."
At least this explains the OpenJPA behavior. But, now we have to resolve this behavior against the JPA spec-defined behavior...