java - 设计 hibernate 实体的解决方案

标签 java hibernate

我的数据库中有时间表。 时间表 ID 已被指定自动增量作为主键。 时间表表中还有其他列任务编号、任务阶段、任务描述等。 每次保存时间表条目之前,我想检查表中taskNo和taskphase的值。 如果该值与新时间表条目的值相同,则不应允许保存。这意味着检查 任务编号和任务阶段的重复条目。

首先我想到将实体设计为复合主键(taskno taskphase)。但我放弃了这种尝试,因为可能需要编辑这些列。

在 hibernate 状态下进行此类设计的最佳方法是什么?

最佳答案

我认为你可以广泛采用两种方法

1)让数据库进行唯一性检查,只需在列上放置唯一约束,当您插入重复值时,数据库会抛出一个错误,您可以将其传播到 UI。

2) 应用程序进行验证,您可能需要读入所有任务编号和任务阶段,然后循环遍历它们以查找新插入的值是否重复。

如果行数非常大,请考虑从数据库使用某种形式的延迟加载,例如使用结果集等。

关于java - 设计 hibernate 实体的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26396735/

相关文章:

Java 扫描器不从文件开头开始

java - JUnit 中的测试数据

java - 如何使用 RestS3Service 克隆 Amazon S3 中的对象

java - 您可以创建(Oracle JVM)java 堆的最小值是多少?

java - Java代码是否严格遵循Java中的概念

hibernate - OSGi + hibernate

java - 为什么方法不抛出异常

Hibernate/JPA 2/PostgreSQL - 实体 UUID 作为主键

java - Spring Boot Hibernate CRUD REST API 404错误

hibernate - Hibernate 3.5 中的 @OrderColumn 注释