Domain Model
The domain model of the case study is identical with the
Spring JPetstore sample application in its salient aspects.
The case study introduces a layer supertype class
(not shown in the diagram) that bestows a unique identifier
property on each subclass.
All of the classes are POJOs and are persisted by
the data access layer.
A
Product
describes a class of items
that can be sold, and is associated with a
Category
.
An
Item
holds inventory information about
Product
s, such as status, quantity in stock,
list price and unit cost.
An
Account
describes an end user of the JPetStore,
and holds information such as the user's name, address and
authentication credentials.
Users shop online using a
Cart
, to which they
can add and remove
Item
s.
CartItem
represents an association between an individual
user's cart and
Item
s in inventory at a particular
moment in the user's shopping experience.
Once the user makes a purchase, the items in the
Cart
become an
Order
.
An
Order
contains information about the user,
payment method, billing and shipping address.
LineItem
associates
Item
s in inventory
with an
Order
.