我的数据库中有时间表。 时间表 ID 已被指定自动增量作为主键。 时间表表中还有其他列任务编号、任务阶段、任务描述等。 每次保存时间表条目之前,我想检查表中taskNo和taskphase的值。 如果该值与新时间表条目的值相同,则不应允许保存。这意味着检查 任务编号和任务阶段的重复条目。
首先我想到将实体设计为复合主键(taskno taskphase)。但我放弃了这种尝试,因为可能需要编辑这些列。
在 hibernate 状态下进行此类设计的最佳方法是什么?
最佳答案
我认为你可以广泛采用两种方法
1)让数据库进行唯一性检查,只需在列上放置唯一约束,当您插入重复值时,数据库会抛出一个错误,您可以将其传播到 UI。
2) 应用程序进行验证,您可能需要读入所有任务编号和任务阶段,然后循环遍历它们以查找新插入的值是否重复。
如果行数非常大,请考虑从数据库使用某种形式的延迟加载,例如使用结果集等。
关于java - 设计 hibernate 实体的解决方案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26396735/