【问题标题】:solution for designing the hibernate entity设计休眠实体的解决方案
【发布时间】:2014-10-16 13:33:16
【问题描述】:

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

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

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

【问题讨论】:

标签: java hibernate


【解决方案1】:

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

1) 让数据库做唯一性检查,只要在列上设置唯一性约束,当你插入重复值时,数据库会抛出一个错误,你可以传播到 UI。

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

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

【讨论】:

    【解决方案2】:

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

    `findByTaskNoAndTaskPhase(String taskNo, String taskphase);`
    

    希望你真的想要基于界面的结果。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-29
      • 1970-01-01
      • 2023-01-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多