不需要无参数构造函数的 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,即使没有提供,也能正常工作。