Close

JPA - JPA with Eclipse Link and H2 database Example

JPA JAVA EE 

package com.logicbig.example;

import javax.persistence.*;
import javax.persistence.criteria.CriteriaBuilder;
import javax.persistence.criteria.CriteriaQuery;
import java.util.Arrays;
import java.util.List;

public class JPAKickStartExample {

public static void main(String[] args) {

EntityManagerFactory emf =
Persistence.createEntityManagerFactory("testPersistenceUnit");
EntityManager entityManager = emf.createEntityManager();
entityManager.getTransaction().begin();

MyObject myObject = new MyObject();
myObject.setStr("one");
entityManager.persist(myObject);

myObject = new MyObject();
myObject.setStr("two");
entityManager.persist(myObject);

entityManager.getTransaction().commit();

findObjectById(entityManager);
queryWithJPQL(entityManager);
typedQueryWithJPQL(entityManager);
criteriaQuery(entityManager);
queryNative(entityManager);
}

private static void findObjectById(EntityManager entityManager) {
System.out.println("----\nfinding object by id");
MyObject o = entityManager.find(MyObject.class, 2L);
System.out.println(o);
}

private static void queryWithJPQL(EntityManager entityManager) {
System.out.println("----\nQuerying using JPQL");
Query query = entityManager.createQuery("select t from MyObject t");
List resultList1 = query.getResultList();
System.out.println(resultList1);
}

private static void typedQueryWithJPQL(EntityManager entityManager) {
System.out.println("----\nTyped Querying using JPQL");
TypedQuery<MyObject> q =
entityManager.createQuery("select t from MyObject t"
, MyObject.class);
System.out.println(q.getResultList());
}

private static void queryNative(EntityManager entityManager) {
System.out.println("----\nnative query");
Query nativeQuery = entityManager.createNativeQuery("select * from MyObject");
List resultList = nativeQuery.getResultList();
for (Object o : resultList) {
if (o.getClass().isArray()) {
Object oa[] = (Object[]) o;
System.out.println(Arrays.asList(oa));
} else {
System.out.println(o);
}
}
}


private static void criteriaQuery(EntityManager entityManager) {
System.out.println("----\ncriteria query");
CriteriaBuilder cb = entityManager.getCriteriaBuilder();
CriteriaQuery<Object> query = cb.createQuery();
CriteriaQuery<Object> select = query.select(query.from(MyObject.class));

TypedQuery<Object> typedQuery = entityManager.createQuery(select);
System.out.println(typedQuery.getResultList());

}
}

Output

----
finding object by id
MyObject{objId=2, str='two'}
----
Querying using JPQL
[MyObject{objId=1, str='one'}, MyObject{objId=2, str='two'}]
----
Typed Querying using JPQL
[MyObject{objId=1, str='one'}, MyObject{objId=2, str='two'}]
----
criteria query
[MyObject{objId=1, str='one'}, MyObject{objId=2, str='two'}]
----
native query
[1, one]
[2, two]

package com.logicbig.example;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;

@Entity
public class MyObject {
@Id
@GeneratedValue
private long objId;
private String str;

public long getObjId () {
return objId;
}

public void setObjId (long objId) {
this.objId = objId;
}

public String getStr () {
return str;
}

public void setStr (String str) {
this.str = str;
}

@Override
public String toString () {
return "MyObject{" +
"objId=" + objId +
", str='" + str + '\'' +
'}';
}
}

pom.xml:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.logicbig.example</groupId>
<artifactId>jpa-kickstart-example</artifactId>
<version>1.0-SNAPSHOT</version>

<dependencies>
<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<version>1.4.193</version>
</dependency>

<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>eclipselink</artifactId>
<version>2.6.4</version>
</dependency>

<dependency>
<groupId>org.eclipse.persistence</groupId>
<artifactId>javax.persistence</artifactId>
<version>2.1.1</version>
</dependency>
</dependencies>

<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
</plugins>
</build>
</project>
Original Post




See Also