借助Hibernate的Persistence提供者,如何使用entity限制实体数量
假设我们有一个 Address
实体,如何限制一个用户只能拥有 10 个地址?
我想在实体级别限制这一点。
最佳答案
使用@Size
注释来注释允许的子对象的最大数量
@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@Size(max = 2)
private List<Child> children;
如果子级超出限制,它将在持久时间内抛出Exception
以下
Caused by: javax.validation.ConstraintViolationException: Validation failed for classes [org.myapp.Parent] during persist time for groups [javax.validation.groups.Default, ]
List of constraint violations:[
ConstraintViolationImpl{interpolatedMessage='size must be between 0 and 2', propertyPath=childs, rootBeanClass=class org.myapp.Parent, messageTemplate='{javax.validation.constraints.Size.message}'}
]
您还可以指定对象的最小
数量。
如果使用hibernate,需要在pom中包含以下依赖项
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>{hibernate.version}</version>
</dependency>
关于java - 如何使用实体限制实体数量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40167953/