【发布时间】:2021-09-23 17:04:43
【问题描述】:
我知道并理解这个概念,已经应用到我的编码中。但是,我不明白我们应该什么时候使用?每次我们有关系数据库时我们应该实现这个吗?或者当情况需要我们时?
例如 1:
Customer customer = new Customer();
customer.setName("John");
PhoneNumber ph1 = new PhoneNumber();
ph1.setNumber("1234567890");
ph1.setType("cell");
PhoneNumber ph2 = new PhoneNumber();
ph2.setNumber("0987654321");
ph2.setType("home");
customer.addPhoneNumber(ph1);
customer.addPhoneNumber(ph2);
repository.save(customer);
上面是一个客户有很多号码的地方,对于这个用例,一个新客户和多个新号码被创建并保存(在数据库中),这就是我们需要映射的原因。完全理解。
但还有另一个例子——例如 2:
db 中有 2 个表 - 卖家(PK:seller_id)和产品(PK:prod_id,FK:seller_id)。因此,要添加产品,您必须将 Seller_id 作为字段之一。这也是有关系的。但与第一个例子相比,我不需要创建新卖家和多个新产品。我需要先创建新的卖家,然后在任何时候多次添加产品。对于这种情况,我是否也需要进行映射?
编辑:我的问题是,我可以使用本机查询从 1 个卖家那里获取产品列表吗?如果是,那映射的意义何在?
【问题讨论】:
标签: orm spring-data-jpa