Hi...
They can be public or protected if you are using field-based access.(The reason for this(I'm guessing) is that public and protected both allow a subclass to access the fields,which may be how the persistence provider works with them)
But if you are using property-based access then they should conform to the Javabeans spec.Found
here
The instance variables should not be declared as final because the persistence provider may need to override them.
I'm not sure about the methods though...haven't read that far....
By the way they are not called 'Entity beans' they are just plain 'entities'...