设计hibernate实体的解决方案

时间:2014-10-16 05:19:55

标签: java hibernate

我在数据库中有时间表。 时间表ID已被赋予自动增量作为主键。 在时间表表格中还有其他coloumns taskNo,Taskphase,taskdescription等。 每次保存时间表条目之前,我都想检查表中的taskNo和taskphase的值。 如果该值与新时间表条目相同,则不应允许保存。这意味着检查 taskNo和taskphase的重复条目。

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

在hibernate中进行这种设计的最佳方法是什么?

2 个答案:

答案 0 :(得分:1)

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

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

2)应用程序进行验证,您可能需要读入所有taskNo和taskphases,然后遍历它们以查找新插入的值是否重复。

如果行数不是很大,请考虑使用数据库中某种形式的延迟加载,例如使用结果集等。

答案 1 :(得分:0)

你可能会在提交保存之前尝试添加验证接口。 喜欢:

`findByTaskNoAndTaskPhase(String taskNo, String taskphase);`

确实希望你真的想要基于接口的结果。