我有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
}

10-05 22:05