The JPA 2.0 specification says on page 22:
The instance variables of a class must be private, protected, or package visibility independent of whet
With DataNucleus as JPA provider you could use public fields, but you would then need to mark any classes that access these fields as "persistence aware" (see the DataNucleus docs), so they can be enhanced to cater for this