java - 如何使用实体限制实体数量?

标签 java hibernate

借助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/

相关文章:

java - 无法解密用Java加密的消息

Java Executor Service 等待所有任务完成

java - Json Jackson Mapper 通用 map 类型问题

java - jar 问题

java - Hibernate JPA ManyToOne 组合键

java - 在 hibernate 中使用多个表,输出问题

hibernate - 我如何在 QueryDSL 中使用强制索引?

java - 当java使用getBoolean时,错误无法转换为内部表示 - JAVA,ORACLE

mysql - 指令删除的 hibernate 问题

java - findall() 并不总是从数据库中提取值吗?