【问题标题】:JPA, Hibernate : Database SchemaJPA,休眠:数据库模式
【发布时间】:2018-03-20 10:57:39
【问题描述】:
这是我的第一篇文章,大家好! :)
我对我的数据库架构有疑问。我正在使用 Spring 编写 RESTful 应用程序。这个想法是允许用户根据存储在 DB 中的产品创建自己的饮食。
所以我开始创建实体 Meal,它应该由产品和这些产品的数量组成。拥有这样的东西似乎很自然的方式是使用 Map。问题是,正如我所读到的,将此类映射到 JSON 对象存在问题,我想将其发送到客户端浏览器。我的另一个想法是存储像 ProductWithQuantity 这样的对象列表而不是这样的地图,但我有点担心 DB 会很快被 1 杯牛奶、2 杯牛奶、1.1243 杯牛奶等条目淹没。
所以我的问题是 - 您对用于此目的的架构有什么更好的想法吗? ;)
【问题讨论】:
标签:
database
spring
hibernate
rest
jpa
【解决方案1】:
我会定义一个实体 Meal,它与实体产品具有 oneToMany 关系,该产品具有“名称”、“数量”、“单位”和“价格”等属性。单位可以是“克”、“升”等。
【解决方案2】:
我可能会建议多份餐食,每份都是一种产品。像牛奶或汉堡这样的产品可能有营养信息,而一顿饭会有很多份不同的产品。 Serving 本质上是 Mean 和 Product 之间的关系表,但包含其他信息,例如服务大小。
@Entity
Class Meal {
@Id
Integer Id;
@OneToMany(mappedBy="meal")
List<Serving> servings;
}
@Entity
Class Serving {
@Id
Integer Id;
@OneToOne
Meal meal;
@OneToOne
Product product;
@Basic
Long servingCount;
}
@Entity
Class Product {
@Id
Integer Id;
@Basic
String simpleName;
@Basic
Integer caloriesPerServing;
..
}