JPA实现不需要无参数构造函数
有没有实现JPA的ORM框架,但不需要@Entity
类的默认(无参数)构造函数?
AFAIK,在JPA文档中说,一个@Entity
应该有默认的构造函数,但是一个实现是否支持构造函数参数注入(或者可能是不安全的对象实例化),因此使用没有默认构造函数的类?
这个特性对于确保不变性( 标准的 JPA缺少)有很大的帮助,并且可以让开发人员对类实例状态保持严格的不variables(例如,它的字段总是有正确的值)。
顺便说一下,当使用Kotlin时,无参构造函数的需要会干扰良好的代码风格和编码约定。
有JIRM
库处理构造函数注入和不可变性,但它不是一个完整的JPA实现。
那么,是否有任何JPA ORM支持@Entity
类没有默认的构造函数?
有没有实现JPA的ORM框架,但不需要@Entity类的默认(非arg)构造函数?
不,因为它会打破规范。 以下引用来自JPA 2.1规范的第23页:
实体类必须有一个无参数的构造函数。 实体类也可以有其他的构造函数。 无参数构造函数必须是公共的或保护的。
话虽如此,可能存在一些部分实现JPA的ORM框架忽略了这个特性。
- 我如何使用java运算符“|” “关于Kotlin?
- 如何将java.util.stream.Stream <Something>转换成kotlin.Sequence <Something>
- Java的Kotlin:是否可以为空?
- IncompatibleClassChangeError:类’java.lang.VirtualMachineError’没有实现接口’java.lang.CharSequence’
- 如何将Java源文件的一部分转换为Kotlin?
- 要求失败,浮点数
- 异常处理程序不能使用`spring-boot-starter-data-rest`
- SonarQube:如何将多个质量配置文件应用于一个项目?
- 如何在处理程序中将java转换为kotlin