A round trip working with objects
Hibernate may be regarded as a persistence provider to JPA:
Figure 937. JPA persistence provider
Todo: Ref/Jdbc/persistProvider.fig
The following class hibintro.v1.model.User
will be used as a starting example to be mapped to a database. Notice
the javax.persistence.Entity
annotation
❶:
Figure 938. Mapping
hibintro.v1.model.User
instances
to a database. package hibintro.v1; import javax.persistence.Entity; import javax.persistence.Id; /** * A simple class intended to be mapped to a database server * */ @Entity ❶ public class User { String uid; /** * @return The user's unique login name e.g. "goik" */ @Id public String getUid() { return uid; } /** * @param uid See {@link #getUid()}. */ public void setUid(String uid) { this.uid = uid; } String cname; /** * @return The user's common name e.g. "Martin Goik" */ public String getCname() { return cname; } /** * @param cname See {@link #getCname()}. */ public void setCname(String cname) { this.cname = cname; } /** * Hibernate/JPA require a default constructor. It has has to be * implemented if any non-default constructor has been defined */ public User() {} /** * @param uid See {@link #getUid()}. * @param cname See {@link #getCname()}. */ public User(String uid, String cname) { this.uid = uid; this.cname = cname; } }
With respect to Figure 936, “A basic persistence.xml
JPA configuration file. ” we
notice our class hibintro.v1.model.User
being
referenced:
<persistence ... >
<persistence-unit name="hibintroV1PU">
<class>hibintro.v1.User
</class>
...
</persistence-unit>
...
This line tells Hibernate to actually map
hibintro.v1.model.User
to the database.