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
Products, 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
Items.
CartItem represents an association between an individual
user's cart and
Items 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
Items in inventory
with an
Order.