Mechanisms for Storing and Manipulating Data

Relational Database Paradigm

Object Oriented Paradigm

OOP Relationships

Object Relational Mapping

JPA

What is JPA?

JPA Implementations

JPA Inheritance

API

Annotations

@Entity

@Id

Table(name = "TABLE_NAME")

@GeneratedValue(strategy = GenerationType.ENUM_VALUE)

@DiscriminatorColumn

@Column(name = "COLUMN_NAME")

@Temporal(TemporalType.ENUM_VALUE)

@Transient

@Enumerated(EnumType.HOW_TO_PERSIST)

Cardinal Relationships

Frequently Asked Questions (FAQs)

What is a discriminator column?

What is a cascading event?

What is fetching?

What is a Join Table?

What is a Database Catalog?

What is Configuration by Exception?

What is an Entity?

What is MetaData?

What is an EntityManager ?

What is an EntityTransaction?

What is a Managed Entity?

What is a Query?

What is a Service Object?

What is CRUD?

What is Java Persistence Query Language (JPQL)?

SELECT		*
FROM		item
WHERE		unit_cost > 100.00
ORDER BY	title;
SELECT		i
FROM		Item i
WHERE		i.unitCost > 100.00
ORDER BY	i.title;

What is Persistence?

What is a Persistence Context?

What is a Persistence Unit?

<properties>
	 <property name="javax.persistence.jdbc.driver"
		  value="org.hsqldb.jdbcDriver"/>
	
	<property name="javax.persistence.jdbc.url"
		  value="objectdb://localhost/my.odb"/>
	
	<property name="javax.persistence.jdbc.user"
		  value="root"/>
	
	
	<property name="javax.persistence.jdbc.password"
		  value=""/>
		  
	<property name="javax.persistence.database-product-name"
		value = "Derby"/>
		
	<property name="javax.persistence.schema-generation.database.action"
		value = "drop-and-create"/>

	<property name="javax.persistence.schema-generation.scripts.action"
		value="drop-and-create"/>

	<property name="javax.persistence.schema-generation.scripts.create-target"
		value="create.ddl"/>

	<property name="javax.persistence.schema-generation.scripts.drop-target"
		value="drop.ddl"/>
		
	<property name="eclipselink.logging.level"
		value="INFO"/>
</properties>
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-entitymanager -->
<dependency>
	<groupId>org.hibernate</groupId>
	<artifactId>hibernate-entitymanager</artifactId>
	<version>3.3.2.GA</version>
	<type>pom</type>
</dependency>
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<dependency>
	<groupId>org.eclipse.persistence</groupId>
	<artifactId>eclipselink</artifactId>
	<version>2.5.0</version>
</dependency>