保存到 LinkedHashSet- 初学者
@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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您无法更改 query.getResultList() 的结果类型,但可以将 List转换为
LinkedHashSet
:(创建的 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
:(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?)您无法将列表映射到集合。如果您只是想消除重复,那么您可以使用数据库查询来实现
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