我有2个表,一对多关系。我需要做的是将子表(很多部分)分类为一些类别并显示它们。例如,我有一个地区和产品表。因此,一个地区将有很多产品,但是有许多产品属于特定类别,我将全部显示在一个部分中。
所以我想要的是这样的:
@Entity
public class Region {
// ... some codes here
@OneToMany(fetch = FetchType.LAZY)
private List<HashMap<Long, List<Product>>> ProductEntities;
// ... some codes here
}
有什么建议吗?
最佳答案
这是我在做什么。但是,如果能得到更好的解决方案,请多加赞赏。
@Entity
public class Region {
// ... some codes here
@OneToMany(fetch = FetchType.LAZY)
private List<Product> ProductEntities;
@Transient
private HashMap<Long, List<Product>> productsMap;
public HashMap<Long, List<Product>> getProductsMap() {
if (ProductEntities!= null) {
for (Product product : ProductEntities) {
List<Product> productList = productsMap.get(product.getProductTypeEntity().getId());
if (productList == null) {
productList= new ArrayList<Product>();
}
productList.add(product);
productsMap.put(product.getProductTypeEntity().getId(), productList);
}
}
return productsMap;
}
// ... rest of codes
}