Почему JPA требует конструктора без аргументов для объектов домена - PullRequest
10 голосов
/ 11 мая 2010

Почему JPA требует конструктора без аргументов для объектов домена? Я использую eclipselink и только что получил это исключение во время развертывания.

Exception [EclipseLink-63] (Eclipse Persistence Services-1.1.0.r3639-SNAPSHOT): 
org.eclipse.persistence.exceptions.DescriptorException

Exception Description: The instance creation method   
[com.me.model.UserVO.<Default Constructor>], with no parameters, 
  does not exist, or is not accessible.
Internal Exception: java.lang.NoSuchMethodException: 
  com.me.model.UserVO.<init>()
Descriptor: RelationalDescriptor(com.me.model.UserVO --> 
  [DatabaseTable(user)])

Ответы [ 2 ]

13 голосов
/ 11 мая 2010

Поскольку часто бывает, что провайдер JPA должен динамически создавать экземпляр вашего доменного объекта. Он не может этого сделать, если нет конструктора без аргументов - он не может угадать, какими должны быть аргументы.

7 голосов
/ 15 января 2015

Также обратите внимание, что это не зависит от поставщика. Это спецификация JPA.

JPA v2.0 JSR-317 и v2.1 JSR-338 говорит:

Класс сущности должен иметь конструктор без аргументов. Класс сущности может иметь и другие конструкторы. Конструктор без аргументов должен быть открытым или защищенным .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...