我在加载Hibernate查询时,一直遇到 java.lang.OutOfMemoryError: GC overhead limit exceeded
错误。
我尝试过几次增加内存,但问题仍然存在。我注意到我的日志似乎指向了一个使用 TreeMap
的方法。我想知道是不是我使用不当导致了内存不足问题。
public List<Item> getProducts() {
List<ProductListing> productListings = session.createCriteria(ProductListing.class)
.createAlias("productConfiguration", "productConfiguration")
.add(Restrictions.eq("productConfiguration.category", category))
.add(Restrictions.eq("active", true))
.add(Restrictions.eq("purchased", true)).list();
Map<String, Item> items = new TreeMap<>();
productListings.stream().forEach((productListing) -> {
Item item = productListing.getItem();
items.put(item.getName(), item);
});
return new ArrayList<>(items.values());
}
将值传递到ArrayList中是否安全?
我需要设置ArrayList的大小吗?
我只是想知道我是否做错了什么。看起来没问题,但内存异常表明情况并非如此。