При проектировании модели данных с использованием JPA, особенных правил, которые были бы определены стандартом, фактически нет. Очевидно, что класс должен
- Быть сериализуемым
- Cодержать реализацию
equalsиhashCode - Некоторые рекомендуют перегружать
toString - Иметь публичные getters & setters для своих полей
Но это фактически требования к стандартным JavaBean's, чем конкретно к JPA entity beans. А между тем, именно JPA entity имеют свои особенности, о которых было очень полезно знать непостредственно при проектировании. И снова источником вдохновения стала статья Stijn Geukens на StackOwerflow