JPA实现默认情况下检查以下验证约束生命周期点:
javax.persistence.validation.group.pre-persist
javax.persistence.validation.group.pre-update
javax.persistence.validation.group.pre-remove
在spring-boot应用程序中,自定义这种行为的方法是什么
我不想使用persistence.xml
文件
此外,有没有一种方法可以在加载实体时也启用检查
就像我使用@NotNull
一样,我还想声明该实体的任何实例,
如果该属性为null,都是无效的,所以应该抛出异常吗?
您应该能够在spring-boot应用程序中修改这些持久性属性,方法是在它们前面加上spring.jpa.properties,然后在application.properties
文件中加上它们的值。
例如,javax.persistence.validation.group.pre-update
将是spring.jpa.properties.javax.persistence.validation.group.pre-update
,后面是要使用这些生命周期事件验证的组,如下所示:
spring.jpa.properties.javax.persistence.validation.group.pre-update=javax.validation.groups.Default
关于应用程序的数据完整性,理想情况下,您希望确保底层数据库中只有干净、准确的日期,并且有适当的数据库约束,以防止出现任何不正确的数据。例如,您可能希望对DB表中的特定列具有NOT NULL
约束。如果您从Java代码生成DB模式,您可以考虑使用@NotNull
和@Column(nullable = false)
注释,这将为您的生成此约束