如何防止存储在数据库中的多个条目?

时间:2011-09-28 07:10:25

标签: java database hibernate

考虑使用java,struts,hibernate和oracle。如何防止存储在数据库中的重复条目。一种方法是将字段设为唯一。例如我在jsp页面中输入国家“USA”,美国已经可用意味着我该如何防止它。请告诉我。

此致

萨拉

3 个答案:

答案 0 :(得分:3)

您应该始终对必须保持唯一的字段设置唯一约束。但是,这会在提交时导致一个神秘的异常。如果您希望更加用户友好,则应在插入之前检查该条目是否已存在(使用查询),并在条目已存在时向用户显示有用且可读的错误消息。

这仍然允许两个并发用户同时检查,然后同时插入,但它大大降低了概率,并且唯一约束确保其中一个提交失败,使数据库保持一致状态。

答案 1 :(得分:0)

查询您的数据库是否已包含 USA 。如果是,则不要存储它。如果没有,那就去做。

答案 2 :(得分:0)

在国家/地区列的数据库表中添加唯一索引。

此外,您可以使用@Column(unique=true)注释hibernate对象的country属性。