На мой взгляд, лучше создать два класса, один для сущности JPA, а другой для JCR.
Разделив обе области, вы лучше понимаете и контролируете, что нужно делать в чтобы обрабатывать или сохранять все виды объектов, и, сосредоточившись на одной задаче, эти два класса и связанные с ними logi c более надежны и менее подвержены ошибкам.
Эти два класса могут определять несколько общих полей .
Вы можете использовать такие инструменты, как MapStruct или Dozer для сопоставления полей между экземплярами двух классов.
Более того, оба класса могут реализовывать общий интерфейс с общими полями, которые они разделяют, например, чтобы вы могли повторно использовать его в своей logi c (для целей аудита, реализации шаблона Builder и т. д.), если это необходимо.