如以下代码所示,我正在通过简单的休眠代码在表中插入数据。
但是当所有字段都在时,它也在表中保存数据,但是只有id被更改
(自动递增)。我想知道有什么方法可以知道表中存在相同的数据,并且可以保存多余的插入。请告诉一个简单的方法,我知道我可以随时编写查询以找出相同的内容。
List<Route> listRoute = newList();
listRoute.get(0).setSource("DelhiTest");
listRoute.get(0).setDestination("KotaTest");
listRoute.get(1).setSource("DelhiTest");
listRoute.get(1).setDestination("KotaTest");
listRoute.get(2).setSource("DelhiTest");
listRoute.get(2).setDestination("KotaTest");
RowReferenceByEntity.setListRoute(listRoute);
new RouteDAOImpl().saveOnly(listRoute.get(0));
new RouteDAOImpl().saveOnly(listRoute.get(1));
new RouteDAOImpl().saveOnly(listRoute.get(2));
谢谢
最佳答案
搜索已经存在的重复行会导致性能问题。对于每个新项目,您都需要在该表中搜索一个匹配项。
为了保证路由的唯一性,您可以创建一个覆盖源ID和目标ID的唯一索引。任何试图复制数据的尝试都会引发异常。而且这种病很快就解决了。
但是,如果您只是想在列表中找到重复的项目,请看这篇文章。
How to find duplicate items in list