JPA中的Bean验证API

问题描述 投票:0回答:1

默认情况下,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只是无效的,因此应该引发异常吗?

java validation jpa bean-validation
1个回答
0
投票

您应该能够在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

关于应用程序的数据完整性,理想情况下,您将要确保基础数据库中仅存在干净,准确的日期,并且存在适当的数据库约束以防止出现任何不正确的数据。例如,您希望对数据库表中的该特定列具有NOT NULL约束。如果要从Java代码生成数据库模式,则可以考虑使用@NotNull@Column(nullable = false)注释,这将为您生成此约束。

© www.soinside.com 2019 - 2024. All rights reserved.