INT-3029 JPA: Support Iterables for Persist/Merge
* Add test cases * Add documentation Jira: https://jira.springsource.org/browse/INT-3029 INT-3029 Update copyright year Doc Polishing
This commit is contained in:
committed by
Gary Russell
parent
772a01be79
commit
bbf93e1385
@@ -24,7 +24,6 @@ import java.util.List;
|
||||
import javax.persistence.EntityManager;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import org.springframework.beans.factory.BeanFactory;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.integration.jpa.support.parametersource.ExpressionEvaluatingParameterSourceFactory;
|
||||
@@ -234,6 +233,92 @@ public class AbstractJpaOperationsTests {
|
||||
Assert.assertTrue(student != savedStudent);
|
||||
}
|
||||
|
||||
public void testMergeCollection() {
|
||||
final JpaOperations jpaOperations = getJpaOperations(entityManager);
|
||||
|
||||
final StudentDomain student1 = JpaTestUtils.getTestStudent();
|
||||
final StudentDomain student2 = JpaTestUtils.getTestStudent();
|
||||
final StudentDomain student3 = JpaTestUtils.getTestStudent();
|
||||
|
||||
student1.setFirstName("Karl");
|
||||
student2.setFirstName("Otto");
|
||||
student3.setFirstName("Wilhelm");
|
||||
|
||||
List<StudentDomain> students = new ArrayList<StudentDomain>(3);
|
||||
|
||||
students.add(student1);
|
||||
students.add(student2);
|
||||
students.add(student3);
|
||||
|
||||
Assert.assertNull(student1.getRollNumber());
|
||||
Assert.assertNull(student2.getRollNumber());
|
||||
Assert.assertNull(student3.getRollNumber());
|
||||
|
||||
Object savedStudents = jpaOperations.merge(students);
|
||||
entityManager.flush();
|
||||
|
||||
Assert.assertTrue(savedStudents instanceof List<?>);
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
List<StudentDomain> savedStudentCollection = (List<StudentDomain>) savedStudents;
|
||||
|
||||
Assert.assertNotNull(savedStudentCollection.get(0).getRollNumber());
|
||||
Assert.assertNotNull(savedStudentCollection.get(1).getRollNumber());
|
||||
Assert.assertNotNull(savedStudentCollection.get(2).getRollNumber());
|
||||
}
|
||||
|
||||
public void testMergeNullCollection() {
|
||||
final JpaOperations jpaOperations = getJpaOperations(entityManager);
|
||||
|
||||
try {
|
||||
jpaOperations.merge(null);
|
||||
}
|
||||
catch (IllegalArgumentException e) {
|
||||
Assert.assertEquals("The object to merge must not be null.", e.getMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
Assert.fail("Expected an IllegalArgumentException to be thrown.");
|
||||
|
||||
}
|
||||
|
||||
public void testMergeCollectionWithNullElement() {
|
||||
final JpaOperations jpaOperations = getJpaOperations(entityManager);
|
||||
|
||||
final List<?> studentsFromDbBeforeTest = jpaOperations.getResultListForClass(StudentDomain.class, 0);
|
||||
|
||||
Assert.assertEquals(3, studentsFromDbBeforeTest.size());
|
||||
|
||||
final StudentDomain student1 = JpaTestUtils.getTestStudent();
|
||||
final StudentDomain student2 = null;
|
||||
final StudentDomain student3 = JpaTestUtils.getTestStudent();
|
||||
|
||||
student1.setFirstName("Karl");
|
||||
student3.setFirstName("Wilhelm");
|
||||
|
||||
List<StudentDomain> students = new ArrayList<StudentDomain>(3);
|
||||
|
||||
students.add(student1);
|
||||
students.add(student2);
|
||||
students.add(student3);
|
||||
|
||||
Assert.assertNull(student1.getRollNumber());
|
||||
Assert.assertNull(student2);
|
||||
Assert.assertNull(student3.getRollNumber());
|
||||
|
||||
Object savedStudents = jpaOperations.merge(students);
|
||||
entityManager.flush();
|
||||
|
||||
Assert.assertTrue(savedStudents instanceof List<?>);
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
List<StudentDomain> savedStudentCollection = (List<StudentDomain>) savedStudents;
|
||||
|
||||
Assert.assertNotNull(savedStudentCollection.get(0).getRollNumber());
|
||||
Assert.assertNotNull(savedStudentCollection.get(1).getRollNumber());
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Test method for {@link org.springframework.integration.jpa.core.DefaultJpaOperations#persist(java.lang.Object)}.
|
||||
*/
|
||||
@@ -248,6 +333,83 @@ public class AbstractJpaOperationsTests {
|
||||
Assert.assertNotNull(student.getRollNumber());
|
||||
}
|
||||
|
||||
public void testPersistCollection() {
|
||||
final JpaOperations jpaOperations = getJpaOperations(entityManager);
|
||||
|
||||
final StudentDomain student1 = JpaTestUtils.getTestStudent();
|
||||
final StudentDomain student2 = JpaTestUtils.getTestStudent();
|
||||
final StudentDomain student3 = JpaTestUtils.getTestStudent();
|
||||
|
||||
student1.setFirstName("Karl");
|
||||
student2.setFirstName("Otto");
|
||||
student3.setFirstName("Wilhelm");
|
||||
|
||||
List<StudentDomain> students = new ArrayList<StudentDomain>(3);
|
||||
|
||||
students.add(student1);
|
||||
students.add(student2);
|
||||
students.add(student3);
|
||||
|
||||
Assert.assertNull(student1.getRollNumber());
|
||||
Assert.assertNull(student2.getRollNumber());
|
||||
Assert.assertNull(student3.getRollNumber());
|
||||
|
||||
jpaOperations.persist(students);
|
||||
entityManager.flush();
|
||||
Assert.assertNotNull(student1.getRollNumber());
|
||||
Assert.assertNotNull(student2.getRollNumber());
|
||||
Assert.assertNotNull(student3.getRollNumber());
|
||||
}
|
||||
|
||||
public void testPersistNullCollection() {
|
||||
final JpaOperations jpaOperations = getJpaOperations(entityManager);
|
||||
|
||||
try {
|
||||
jpaOperations.persist(null);
|
||||
}
|
||||
catch (IllegalArgumentException e) {
|
||||
Assert.assertEquals("The object to persist must not be null.", e.getMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
Assert.fail("Expected an IllegalArgumentException to be thrown.");
|
||||
|
||||
}
|
||||
|
||||
public void testPersistCollectionWithNullElement() {
|
||||
final JpaOperations jpaOperations = getJpaOperations(entityManager);
|
||||
|
||||
final List<?> studentsFromDbBeforeTest = jpaOperations.getResultListForClass(StudentDomain.class, 0);
|
||||
|
||||
Assert.assertEquals(3, studentsFromDbBeforeTest.size());
|
||||
|
||||
final StudentDomain student1 = JpaTestUtils.getTestStudent();
|
||||
final StudentDomain student2 = null;
|
||||
final StudentDomain student3 = JpaTestUtils.getTestStudent();
|
||||
|
||||
student1.setFirstName("Karl");
|
||||
student3.setFirstName("Wilhelm");
|
||||
|
||||
List<StudentDomain> students = new ArrayList<StudentDomain>(3);
|
||||
|
||||
students.add(student1);
|
||||
students.add(student2);
|
||||
students.add(student3);
|
||||
|
||||
Assert.assertNull(student1.getRollNumber());
|
||||
Assert.assertNull(student2);
|
||||
Assert.assertNull(student3.getRollNumber());
|
||||
|
||||
jpaOperations.persist(students);
|
||||
entityManager.flush();
|
||||
Assert.assertNotNull(student1.getRollNumber());
|
||||
Assert.assertNotNull(student3.getRollNumber());
|
||||
|
||||
final List<?> studentsFromDb = jpaOperations.getResultListForClass(StudentDomain.class, 0);
|
||||
|
||||
Assert.assertNotNull(studentsFromDb);
|
||||
Assert.assertEquals(5, studentsFromDb.size());
|
||||
}
|
||||
|
||||
public void testDeleteInBatch() {
|
||||
final JpaOperations jpaOperations = getJpaOperations(entityManager);
|
||||
|
||||
@@ -15,7 +15,6 @@ package org.springframework.integration.jpa.core;
|
||||
import java.text.ParseException;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import org.junit.Test;
|
||||
import org.junit.runner.RunWith;
|
||||
import org.springframework.test.context.ContextConfiguration;
|
||||
@@ -99,12 +98,48 @@ public class EclipseLinkJpaOperationsTests extends AbstractJpaOperationsTests {
|
||||
super.testMerge();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testMergeCollection() {
|
||||
super.testMergeCollection();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testMergeNullCollection() {
|
||||
super.testMergeNullCollection();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testMergeCollectionWithNullElement() {
|
||||
super.testMergeCollectionWithNullElement();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testPersist() {
|
||||
super.testPersist();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testPersistCollection() {
|
||||
super.testPersistCollection();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testPersistNullCollection() {
|
||||
super.testPersistNullCollection();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testPersistCollectionWithNullElement() {
|
||||
super.testPersistCollectionWithNullElement();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testGetAllStudents() {
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/*
|
||||
* Copyright 2002-2012 the original author or authors.
|
||||
* Copyright 2002-2013 the original author or authors.
|
||||
*
|
||||
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
|
||||
* the License. You may obtain a copy of the License at
|
||||
@@ -128,12 +128,48 @@ public class HibernateJpaOperationsTests extends AbstractJpaOperationsTests {
|
||||
super.testMerge();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testMergeCollection() {
|
||||
super.testMergeCollection();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testMergeNullCollection() {
|
||||
super.testMergeNullCollection();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testMergeCollectionWithNullElement() {
|
||||
super.testMergeCollectionWithNullElement();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testPersist() {
|
||||
super.testPersist();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testPersistCollection() {
|
||||
super.testPersistCollection();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testPersistNullCollection() {
|
||||
super.testPersistNullCollection();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testPersistCollectionWithNullElement() {
|
||||
super.testPersistCollectionWithNullElement();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testDeleteInBatch() {
|
||||
|
||||
@@ -17,7 +17,6 @@ import java.sql.SQLException;
|
||||
import java.text.ParseException;
|
||||
|
||||
import org.junit.Assert;
|
||||
|
||||
import org.apache.openjpa.jdbc.conf.JDBCConfiguration;
|
||||
import org.apache.openjpa.jdbc.conf.JDBCConfigurationImpl;
|
||||
import org.apache.openjpa.jdbc.meta.MappingTool;
|
||||
@@ -144,12 +143,48 @@ public class OpenJpaJpaOperationsTests extends AbstractJpaOperationsTests {
|
||||
super.testMerge();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testMergeCollection() {
|
||||
super.testMergeCollection();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testMergeNullCollection() {
|
||||
super.testMergeNullCollection();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testMergeCollectionWithNullElement() {
|
||||
super.testMergeCollectionWithNullElement();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testPersist() {
|
||||
super.testPersist();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testPersistCollection() {
|
||||
super.testPersistCollection();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testPersistNullCollection() {
|
||||
super.testPersistNullCollection();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testPersistCollectionWithNullElement() {
|
||||
super.testPersistCollectionWithNullElement();
|
||||
}
|
||||
|
||||
@Test
|
||||
@Override
|
||||
public void testGetAllStudents() {
|
||||
|
||||
Reference in New Issue
Block a user