Java Reference
In-Depth Information
For the moment, the persistence unit declares one entity, fancyfoods.persistence
.FoodImpl . FoodImpl is an implementation of the Food interface we defined in sec-
tion 2.3.9. It allows Food objects to be persisted to, and read from, a database. The
nice thing about it, and the reason why so many people use JPA , is that it does all this
with one or two tiny little annotations; JPA does all the work for you, as shown in the
following listing.
Listing 3.3
The implementation of the FoodImpl entity class
@Entity(name = "FOOD")
public class FoodImpl implements Food {
Entity annotation declares JPA entity
private String name;
private double price;
private int quantity;
public FoodImpl() {
Primary key
constructor for JPA
public FoodImpl(String name, double price, int quantity) {
this(); = name;
this.price = price;
this.quantity = quantity;
constructor for
public String getName() {
Getter and setter
for name column
public void setName(String name) { = name;
More getters
and setters
Although it's too long to include in full here, the FoodImpl class is a thin data carrier.
It only contains getters and setters, without any business logic. It doesn't have respon-
sibility for persisting itself.
Enhancing the entities
Before they can be used by most JPA providers, entity POJO s must be enhanced .
Enhancement adds extra bytecode to the classes. If you're running in a Java EE 5 (or
later) application server, JPA entities will be automatically enhanced. Usefully, recent
versions of Apache Aries are also able to perform this enhancement. If you aren't run-
ning in a system that provides automatic enhancement, then an Ant task (or similar)
can be used to enhance the entities when building, but it can also be done using an
Eclipse builder.
Search WWH ::

Custom Search