Java 如何使用实体限制实体编号?

Java 如何使用实体限制实体编号?,java,hibernate,Java,Hibernate,使用持久性提供程序Hibernate,如何使用实体限制实体数 假设我们有一个地址实体,如何限制一个用户只能有10个地址 我想将其限制在实体级别。如果您使用的是mysql,这可能对后端(数据库)有所帮助 前端 List<entity> list=new ArrayList<entity>(); if(list.size()>10){ //some condtions } List List=new ArrayList(); 如果(list.si

使用持久性提供程序Hibernate,如何使用实体限制实体数 假设我们有一个
地址
实体,如何限制一个用户只能有10个地址


我想将其限制在实体级别。

如果您使用的是mysql,这可能对后端(数据库)有所帮助

前端

List<entity> list=new ArrayList<entity>();
if(list.size()>10){
      //some condtions
     }
List List=new ArrayList();
如果(list.size()>10){
//一些条件
}

通过这种方式,您可以设置限制表行

使用
@Size
注释来注释允许的最大子对象数

@OneToMany(cascade = CascadeType.ALL, fetch = FetchType.EAGER)
@Size(max = 2)
private List<Child> children;
还可以指定对象的
min
数量

如果使用hibernate,需要在pom中包含以下依赖项

<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>{hibernate.version}</version>
</dependency>

org.hibernate
休眠验证器
{hibernate.version}

谢谢!但是@Size注释来自哪里?实际上,我想要的是我们只能插入10条地址记录。是否可以使用@Size?@ZhijieLiu
min=10,max=10
仅保留具有10个地址的记录,
min=0,max=10
保留具有0-10个地址的记录
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}'}
]
<dependency>
    <groupId>org.hibernate</groupId>
    <artifactId>hibernate-validator</artifactId>
    <version>{hibernate.version}</version>
</dependency>