保存到 LinkedHashSet- 初学者

发布于 2024-11-28 13:01:10 字数 676 浏览 1 评论 0原文

@Override
public LinkedHashSet <String> listHotels() {
   Query query  = em.createNativeQuery("select  * from Hotel");
   LinkedHashSet <String> hotel= query.getResultList();
   return hotel;
}

我收到一条警告,指出类型不兼容。查询.getResultList();返回一个List,但我希望该方法返回的是一个LinkedHashSet

我在这里使用 LinkedHashSet 的原因是为了避免将重复值输入到数据库中。我将首先调用方法listHotels(),并检查它是否已经包含该值,如果没有,我会将这些值保存到数据库

编辑

    public void saveHotel(Hotel hotel) {
    if (hotel.getId() ==null){
        em.persist(hotel);
    } else {
        em.merge(hotel);
    }
}

这是我如何将记录保存到我的数据库中

@Override
public LinkedHashSet <String> listHotels() {
   Query query  = em.createNativeQuery("select  * from Hotel");
   LinkedHashSet <String> hotel= query.getResultList();
   return hotel;
}

I am getting a Warning saying incompatible types. query.getResultList(); returns a List, but what I want the method to return is a LinkedHashSet.

The reason why I'm using a LinkedHashSet here, is to avoid duplicate values being entered to the DB. I will call the method listHotels() first, and check if it has already contains the value and if doesn't I'll save the values to the DB

EDIT

    public void saveHotel(Hotel hotel) {
    if (hotel.getId() ==null){
        em.persist(hotel);
    } else {
        em.merge(hotel);
    }
}

THis is how i save records to my DB

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

享受孤独 2024-12-05 13:01:10

您无法更改 query.getResultList() 的结果类型,但可以将 List转换LinkedHashSet:(

LinkedHashSet<String> hotel= new LinkedHashSet(query.getResultList());

创建的 LinkedHashSet 将具有列表中的唯一元素。但是您显示的示例是 SELECT sql,而不是 INSERT/UPDATE 为了保证数据库上的唯一记录,您必须在中进行这样的安排 - 使用 LinkedHashSet 等。 INSERT/UPDATE 部分。如果您已经使用 LinkedHashSet 添加到数据库,那么数据库将不会有重复记录,您对数据库有必要的唯一约束吗?)

You cannot change the result type of query.getResultList(), but you can convert the List to a LinkedHashSet:

LinkedHashSet<String> hotel= new LinkedHashSet(query.getResultList());

(The LinkedHashSet created will have the unique elements from the list. But the example you have shown is a SELECT sql, rather than an INSERT/UPDATE. To guarantee unique records on the database, you have to make such an arrangement - using a LinkedHashSet or so - in the INSERT/UPDATE part. If you are already using a LinkedHashSet to add to the database, the database won't have duplicate records anyway. BTW, you have the necessary unique constraints on the database right?)

人事已非 2024-12-05 13:01:10

您无法将列表映射到集合。如果您只是想消除重复,那么您可以使用数据库查询来实现

You can not map a List to a Set. If you just want to eliminate duplicate then you can do so using your DB query

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文