我在数据库中有时间表。 时间表ID已被赋予自动增量作为主键。 在时间表表格中还有其他coloumns taskNo,Taskphase,taskdescription等。 每次保存时间表条目之前,我都想检查表中的taskNo和taskphase的值。 如果该值与新时间表条目相同,则不应允许保存。这意味着检查 taskNo和taskphase的重复条目。
首先,我想将实体设计为复合主键(taskno taskphase)。但我放弃了这一尝试,因为可能需要编辑这些列。
在hibernate中进行这种设计的最佳方法是什么?
答案 0 :(得分:1)
我认为你可以广泛采用两种方法
1)让数据库进行唯一性检查,只需在列上添加一个唯一约束,当您插入重复值时,数据库会抛出一个错误,您可以将其传播到UI。
2)应用程序进行验证,您可能需要读入所有taskNo和taskphases,然后遍历它们以查找新插入的值是否重复。
如果行数不是很大,请考虑使用数据库中某种形式的延迟加载,例如使用结果集等。
答案 1 :(得分:0)
你可能会在提交保存之前尝试添加验证接口。 喜欢:
`findByTaskNoAndTaskPhase(String taskNo, String taskphase);`
确实希望你真的想要基于接口的结果。