我正在尝试设计一个非常简单的应用程序,但我对 Hibernate 对实体和值对象的定义(如 Java Persistence with Hibernate 的第 4 章中所定义)感到有些困惑。
我拥有的是一个带有客户的应用程序,他们可以下订单(一对多关系)。这些订单中的每一个都有许多订单行(也是一对多)。现在,我认为客户有身份(客户编号),订单(订单编号)也是如此,因此它们是实体对象?我的困惑来自订单行。
订单行包含数量、产品编号和价格。订单行没有订单就无法存在,也没有自己的身份,因此我将其视为一个值对象。但是我不能将订单行作为订单表的一部分,因为订单与其订单行之间存在一对多的关系。一对多关系如何与值对象的定义一起工作?从休眠书中:
“值类型的对象没有数据库标识;它属于实体实例,并且其持久状态嵌入在拥有实体的表行中。值类型没有标识符或标识符属性”
如果有人能解决我的困惑,我将不胜感激:)