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()); }}
----finding object by idMyObject{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;@Entitypublic 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 + '\'' + '}'; }}
<?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>