不需要无参数构造函数的 JPA 实现
JPA implementation that doesn't require no-arg constructor
有没有实现JPA但不需要默认的ORM框架
来自 @Entity
classes?
的(无参数)构造函数
AFAIK,在 JPA 文档中说 @Entity
应该有默认值
构造函数,但实现是否可以支持构造函数参数注入
(或者可能是不安全的对象实例化),因此使用 classes 没有
默认构造函数?
此功能将有助于确保不变性(标准 JPA 缺乏)
并让开发人员在 class 实例状态上保持严格的不变量
(例如,它的字段总是有正确的值)。
顺便说一下,在使用 Kotlin 时,无参数构造函数的需要会干扰
良好的代码风格和编码约定。
有 JIRM
处理构造函数注入和不可变性的库,
但它不是完整的 JPA 实现。
那么,是否有任何 JPA ORM 支持没有默认构造函数的 @Entity
classes?
Is there an ORM framework which implements JPA but doesn't require default (non-arg) constructor from @Entity classes?
不,因为它会破坏规范。以下引述来自 JPA 2.1 specification 的第 23 页:
The entity class must have a no-arg constructor. The entity class may have other constructors as well. The no-arg constructor must be public or protected.
话虽如此,可能存在一些忽略此功能的部分实现 JPA 的 ORM 框架。
是的,我尝试使用 EclipseLink 2.5.2,即使没有提供,也能正常工作。
有没有实现JPA但不需要默认的ORM框架
来自 @Entity
classes?
AFAIK,在 JPA 文档中说 @Entity
应该有默认值
构造函数,但实现是否可以支持构造函数参数注入
(或者可能是不安全的对象实例化),因此使用 classes 没有
默认构造函数?
此功能将有助于确保不变性(标准 JPA 缺乏) 并让开发人员在 class 实例状态上保持严格的不变量 (例如,它的字段总是有正确的值)。
顺便说一下,在使用 Kotlin 时,无参数构造函数的需要会干扰 良好的代码风格和编码约定。
有 JIRM
处理构造函数注入和不可变性的库,
但它不是完整的 JPA 实现。
那么,是否有任何 JPA ORM 支持没有默认构造函数的 @Entity
classes?
Is there an ORM framework which implements JPA but doesn't require default (non-arg) constructor from @Entity classes?
不,因为它会破坏规范。以下引述来自 JPA 2.1 specification 的第 23 页:
The entity class must have a no-arg constructor. The entity class may have other constructors as well. The no-arg constructor must be public or protected.
话虽如此,可能存在一些忽略此功能的部分实现 JPA 的 ORM 框架。
是的,我尝试使用 EclipseLink 2.5.2,即使没有提供,也能正常工作。