of the relationship between the entities. In relational terms, this means that the BIDS table
holds foreign-key references to the tables holding the Item and Bidder entities. The
@JoinColumn annotation specifies what these foreign-key references are. In the case of
the bid-item relationship, the foreign key stored in the BIDS table is ITEM_ID , which ref-
erences a key named ITEM_ID that's likely the primary key of the ITEMS table. In the
case of the bid-bidder relationship, the foreign key is BIDDER_ID and it references the
USER_ID column. Having looked at the Bid entity, let's now turn our attention to how the
entity winds up in the database through the BidDao bean.
2.4.2. Using the EntityManager
You've probably noticed that the Bid entity doesn't have a method of saving itself into the
database. The JPA EntityManager performs this bit of heavy lifting by reading the O/R
mapping configuration and providing entity persistence operations through an API-based
interface. The EntityManager knows how to store a POJO entity into the database as
a relational record, read relational data from a database and turn it into an entity, update
entity data stored in the database, and delete data mapped to an entity instance from the
database. The EntityManager has methods corresponding to each of these CRUD (cre-
ate, read, update, delete) operations, in addition to support for the robust Java Persistence
Query Language (JPQL).
Let's take a more detailed look at the BidDao in the next listing to see how some of these
EntityManager operations work.