Java 如何在Hibernate-MySQL中存储HashMap

Java 如何在Hibernate-MySQL中存储HashMap,java,mysql,hibernate,insert,hashmap,Java,Mysql,Hibernate,Insert,Hashmap,我看到了两个类似的话题,但不幸的是没有一个能解决我的问题 我在写销售系统。有很多供应商和买家。每个供应商对不同的产品都有不同的价格,买家的价格也是一样的 首先,我这样解决了它(但我不知道下一步该怎么办……): 公共类买家{ //键=产品类型,值=该产品的价格 私人地图产品价格; 公共阶级秩序{ //键=产品类型,值=产品数量 私人地图订购产品; 这是我计算订单的服务(这不是最终版本,我将把返回类型改为某个对象,而不是“弗兰肯斯坦”),所以不要害怕 // key = product type,

我看到了两个类似的话题,但不幸的是没有一个能解决我的问题

我在写销售系统。有很多供应商和买家。每个供应商对不同的产品都有不同的价格,买家的价格也是一样的

首先,我这样解决了它(但我不知道下一步该怎么办……):

公共类买家{
//键=产品类型,值=该产品的价格
私人地图产品价格;
公共阶级秩序{
//键=产品类型,值=产品数量
私人地图订购产品;
这是我计算订单的服务(这不是最终版本,我将把返回类型改为某个对象,而不是“弗兰肯斯坦”),所以不要害怕

// key = product type, value = ( quantity, price)
public Map<ProductType, Map<Double, Double>> calculateOrder(Order order, Buyer buyer) {

    AtomicReference<Double> totalSum = new AtomicReference<>((double) 0);
    Map<ProductType, Map<Double, Double>> resultOrder = new HashMap<>();

    order.getOrderedProducts().forEach((type, quantity) -> {
        double price = buyer.getProductPrices().get(type);
        double sum = quantity * price;

        resultOrder.put(type, new HashMap<>());
        resultOrder.get(type).put(quantity, sum);

        totalSum.updateAndGet(v1 -> v1 + sum);
    });

    return resultOrder;
}
//键=产品类型,值=(数量,价格)
公共地图计算订单(订单,买方){
AtomicReference totalSum=新的AtomicReference((双精度)0);
Map resultOrder=new HashMap();
order.getOrderedProducts().forEach((类型、数量)->{
double price=buyer.getProductPrices().get(类型);
双倍总和=数量*价格;
put(类型,newhashmap());
resultOrder.get(type).put(数量,总和);
totalSum.updateAndGet(v1->v1+sum);
});
返回结果器;
}
更重要的是:对于每个买家/供应商,产品的价格都会经常变化

所以问题是:如何将这些地图放入数据库?当然,要保持干净的代码,而不需要一些“弗兰肯斯坦”,并且能够轻松访问所有数据

我真的很乐意得到任何帮助

另外,为了简化问题,我删除了实体中无用的属性,以便只关注对该问题很重要的员工

PS2.是的,我将double更改为BigDecimal,刚才为了便于计算,我使用了double。

介绍了如何使用Hibernate存储地图。介绍了如何使用Hibernate存储地图。
// key = product type, value = ( quantity, price)
public Map<ProductType, Map<Double, Double>> calculateOrder(Order order, Buyer buyer) {

    AtomicReference<Double> totalSum = new AtomicReference<>((double) 0);
    Map<ProductType, Map<Double, Double>> resultOrder = new HashMap<>();

    order.getOrderedProducts().forEach((type, quantity) -> {
        double price = buyer.getProductPrices().get(type);
        double sum = quantity * price;

        resultOrder.put(type, new HashMap<>());
        resultOrder.get(type).put(quantity, sum);

        totalSum.updateAndGet(v1 -> v1 + sum);
    });

    return resultOrder;
}