minor cleanup work

This commit is contained in:
eugenp 2016-03-13 10:59:45 +02:00
parent 9e3d7a3b22
commit c11c10b10c
3 changed files with 37 additions and 25 deletions

View File

@ -1,23 +1,27 @@
package com.baeldung.jpa.model; package com.baeldung.jpa.model;
import javax.persistence.*; import javax.persistence.Column;
import javax.persistence.Entity;
/** import javax.persistence.GeneratedValue;
* Created by Giuseppe Bueti on 22/02/2016. import javax.persistence.GenerationType;
*/ import javax.persistence.Id;
import javax.persistence.NamedStoredProcedureQueries;
import javax.persistence.NamedStoredProcedureQuery;
import javax.persistence.ParameterMode;
import javax.persistence.StoredProcedureParameter;
import javax.persistence.Table;
@Entity @Entity
@Table(name = "CAR") @Table(name = "CAR")
@NamedStoredProcedureQueries({ @NamedStoredProcedureQueries({
@NamedStoredProcedureQuery(name = "findByYearProcedure", procedureName = "FIND_CAR_BY_YEAR", resultClasses = { Car.class }, @NamedStoredProcedureQuery(name = "findByYearProcedure", procedureName = "FIND_CAR_BY_YEAR", resultClasses = { Car.class }, parameters = { @StoredProcedureParameter(name = "p_year", type = Integer.class, mode = ParameterMode.IN) }) })
parameters = { @StoredProcedureParameter(name = "p_year", type = Integer.class, mode = ParameterMode.IN) }) })
public class Car { public class Car {
private long id; private long id;
private String model; private String model;
private Integer year; private Integer year;
public Car(String model, Integer year) { public Car(final String model, final Integer year) {
this.model = model; this.model = model;
this.year = year; this.year = year;
} }
@ -32,7 +36,7 @@ public class Car {
return id; return id;
} }
public void setId(long id) { public void setId(final long id) {
this.id = id; this.id = id;
} }
@ -41,7 +45,7 @@ public class Car {
return model; return model;
} }
public void setModel(String model) { public void setModel(final String model) {
this.model = model; this.model = model;
} }
@ -50,7 +54,7 @@ public class Car {
return year; return year;
} }
public void setYear(Integer year) { public void setYear(final Integer year) {
this.year = year; this.year = year;
} }
} }

View File

@ -7,16 +7,16 @@ public class QueryParameter {
private Map<String, Object> parameters = null; private Map<String, Object> parameters = null;
private QueryParameter(String name, Object value) { private QueryParameter(final String name, final Object value) {
this.parameters = new HashMap<>(); this.parameters = new HashMap<>();
this.parameters.put(name, value); this.parameters.put(name, value);
} }
public static QueryParameter with(String name, Object value) { public static QueryParameter with(final String name, final Object value) {
return new QueryParameter(name, value); return new QueryParameter(name, value);
} }
public QueryParameter and(String name, Object value) { public QueryParameter and(final String name, final Object value) {
this.parameters.put(name, value); this.parameters.put(name, value);
return this; return this;
} }
@ -24,4 +24,5 @@ public class QueryParameter {
public Map<String, Object> parameters() { public Map<String, Object> parameters() {
return this.parameters; return this.parameters;
} }
} }

View File

@ -1,13 +1,20 @@
package com.baeldung.jpa.storedprocedure; package com.baeldung.jpa.storedprocedure;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.EntityTransaction;
import javax.persistence.ParameterMode;
import javax.persistence.Persistence;
import javax.persistence.StoredProcedureQuery;
import org.junit.AfterClass;
import org.junit.Assert;
import org.junit.Before;
import org.junit.BeforeClass;
import org.junit.Test;
import com.baeldung.jpa.model.Car; import com.baeldung.jpa.model.Car;
import org.junit.*;
import javax.persistence.*;
/**
* Created by Giuseppe Bueti on 23/02/2016.
*/
public class StoredProcedureTest { public class StoredProcedureTest {
private static EntityManagerFactory factory = null; private static EntityManagerFactory factory = null;
@ -25,13 +32,13 @@ public class StoredProcedureTest {
@Test @Test
public void createCarTest() { public void createCarTest() {
EntityTransaction transaction = entityManager.getTransaction(); final EntityTransaction transaction = entityManager.getTransaction();
try { try {
transaction.begin(); transaction.begin();
Car car = new Car("Fiat Marea", 2015); final Car car = new Car("Fiat Marea", 2015);
entityManager.persist(car); entityManager.persist(car);
transaction.commit(); transaction.commit();
} catch (Exception e) { } catch (final Exception e) {
System.out.println(e.getCause()); System.out.println(e.getCause());
if (transaction.isActive()) { if (transaction.isActive()) {
transaction.rollback(); transaction.rollback();
@ -42,13 +49,13 @@ public class StoredProcedureTest {
@Test @Test
public void findCarsByYearNamedProcedure() { public void findCarsByYearNamedProcedure() {
final StoredProcedureQuery findByYearProcedure = entityManager.createNamedStoredProcedureQuery("findByYearProcedure"); final StoredProcedureQuery findByYearProcedure = entityManager.createNamedStoredProcedureQuery("findByYearProcedure");
StoredProcedureQuery storedProcedure = findByYearProcedure.setParameter("p_year", 2015); final StoredProcedureQuery storedProcedure = findByYearProcedure.setParameter("p_year", 2015);
storedProcedure.getResultList().forEach(c -> Assert.assertEquals(new Integer(2015), ((Car) c).getYear())); storedProcedure.getResultList().forEach(c -> Assert.assertEquals(new Integer(2015), ((Car) c).getYear()));
} }
@Test @Test
public void findCarsByYearNoNamed() { public void findCarsByYearNoNamed() {
StoredProcedureQuery storedProcedure = entityManager.createStoredProcedureQuery("FIND_CAR_BY_YEAR", Car.class).registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN).setParameter(1, 2015); final StoredProcedureQuery storedProcedure = entityManager.createStoredProcedureQuery("FIND_CAR_BY_YEAR", Car.class).registerStoredProcedureParameter(1, Integer.class, ParameterMode.IN).setParameter(1, 2015);
storedProcedure.getResultList().forEach(c -> Assert.assertEquals(new Integer(2015), ((Car) c).getYear())); storedProcedure.getResultList().forEach(c -> Assert.assertEquals(new Integer(2015), ((Car) c).getYear()));
} }