前言:在java的世界中万事万物皆对象,而在一个工程中往往是涉及到多个对象。那么在处理多个对象之间的关系显得尤为重要,对象关系大致可以分为四种。一对一、一对多、多对一、多对多,而一对一无需多讲,一对多与多对一则是考虑的角度问题,其本质都是一样的,最后多对多也是可以拆分为一对多的关系。本例讲解一个订单与订单明细的例子便属于一个典型的一对多关系。

需求:本例需要做一个饭馆管理客户小型的点餐系统,主要是管理客户订单。

误区:对于面向对象编程语言的初学者来说建模时可能会定义一个订单对象包含订单编号,订单日期,订单人数,所定菜名,份数,价格等属性的一个对象。

正解:此处应分为两个对象,一个订单对象(订单号,人数,日期,等)一个订单明细对象(所定菜名,份数,价格等)。因为一个对象与属性的关系应该是十分紧密的,比如说菜的价格是与菜关联的并没有与订单存在直接关系。一个客户(订单对象)可能会点多个菜(订单明细对象),这便是我们问题的引入点。

一对多配置方式一、使用jpa注解

首先看一下我们one端,也就是订单对象端部