Apply project coding conventions to Repository example
This commit is contained in:
		| @@ -24,12 +24,13 @@ public class App { | ||||
|   /** | ||||
|    * Program entry point | ||||
|    *  | ||||
|    * @param args command line args | ||||
|    * @param args | ||||
|    *          command line args | ||||
|    */ | ||||
|   public static void main(String[] args) { | ||||
|  | ||||
|     ClassPathXmlApplicationContext context = | ||||
|         new ClassPathXmlApplicationContext("applicationContext.xml"); | ||||
|     ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext( | ||||
|         "applicationContext.xml"); | ||||
|     PersonRepository repository = context.getBean(PersonRepository.class); | ||||
|  | ||||
|     Person peter = new Person("Peter", "Sagan", 17); | ||||
|   | ||||
| @@ -15,117 +15,122 @@ import org.springframework.orm.jpa.JpaTransactionManager; | ||||
| import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean; | ||||
|  | ||||
| /** | ||||
|  * Annotations based configuration for Spring | ||||
|  * This is the same example as in {@link App} but with annotations based  | ||||
|  * configuration for Spring. | ||||
|  * | ||||
|  */ | ||||
| @EnableJpaRepositories | ||||
| public class AppConfig { | ||||
|  | ||||
| 	/** | ||||
| 	 * Creation of H2 db | ||||
| 	 *  | ||||
| 	 * @return A new Instance of DataSource | ||||
| 	 */ | ||||
| 	@Bean(destroyMethod = "close") | ||||
| 	public DataSource dataSource() { | ||||
| 		BasicDataSource basicDataSource = new BasicDataSource(); | ||||
| 		basicDataSource.setDriverClassName("org.h2.Driver"); | ||||
| 		basicDataSource.setUrl("jdbc:h2:~/databases/person"); | ||||
| 		basicDataSource.setUsername("sa"); | ||||
| 		basicDataSource.setPassword("sa"); | ||||
| 		return (DataSource) basicDataSource; | ||||
| 	} | ||||
|   /** | ||||
|    * Creation of H2 db | ||||
|    *  | ||||
|    * @return A new Instance of DataSource | ||||
|    */ | ||||
|   @Bean(destroyMethod = "close") | ||||
|   public DataSource dataSource() { | ||||
|     BasicDataSource basicDataSource = new BasicDataSource(); | ||||
|     basicDataSource.setDriverClassName("org.h2.Driver"); | ||||
|     basicDataSource.setUrl("jdbc:h2:~/databases/person"); | ||||
|     basicDataSource.setUsername("sa"); | ||||
|     basicDataSource.setPassword("sa"); | ||||
|     return (DataSource) basicDataSource; | ||||
|   } | ||||
|  | ||||
| 	/** | ||||
| 	 * Factory to create a especific instance of Entity Manager | ||||
| 	 * @return | ||||
| 	 */ | ||||
| 	@Bean | ||||
| 	public LocalContainerEntityManagerFactoryBean entityManagerFactory() { | ||||
| 		LocalContainerEntityManagerFactoryBean entityManager = new LocalContainerEntityManagerFactoryBean(); | ||||
| 		entityManager.setDataSource(dataSource()); | ||||
| 		entityManager.setPackagesToScan("com.iluwatar"); | ||||
| 		entityManager.setPersistenceProvider(new HibernatePersistenceProvider()); | ||||
| 		entityManager.setJpaProperties(jpaProperties()); | ||||
|   /** | ||||
|    * Factory to create a especific instance of Entity Manager | ||||
|    *  | ||||
|    * @return | ||||
|    */ | ||||
|   @Bean | ||||
|   public LocalContainerEntityManagerFactoryBean entityManagerFactory() { | ||||
|     LocalContainerEntityManagerFactoryBean entityManager = new LocalContainerEntityManagerFactoryBean(); | ||||
|     entityManager.setDataSource(dataSource()); | ||||
|     entityManager.setPackagesToScan("com.iluwatar"); | ||||
|     entityManager.setPersistenceProvider(new HibernatePersistenceProvider()); | ||||
|     entityManager.setJpaProperties(jpaProperties()); | ||||
|  | ||||
| 		return entityManager; | ||||
| 	} | ||||
|     return entityManager; | ||||
|   } | ||||
|  | ||||
| 	/** | ||||
| 	 * Properties for Jpa | ||||
| 	 * @return | ||||
| 	 */ | ||||
| 	private Properties jpaProperties() { | ||||
| 		Properties properties = new Properties(); | ||||
| 		properties.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); | ||||
| 		properties.setProperty("hibernate.hbm2ddl.auto", "create-drop"); | ||||
| 		return properties; | ||||
| 	} | ||||
| 	 | ||||
|     @Bean | ||||
|     public JpaTransactionManager transactionManager() throws SQLException { | ||||
|         JpaTransactionManager transactionManager = new JpaTransactionManager(); | ||||
|         transactionManager.setEntityManagerFactory(entityManagerFactory().getObject()); | ||||
|         return transactionManager; | ||||
|   /** | ||||
|    * Properties for Jpa | ||||
|    *  | ||||
|    * @return | ||||
|    */ | ||||
|   private Properties jpaProperties() { | ||||
|     Properties properties = new Properties(); | ||||
|     properties.setProperty("hibernate.dialect", "org.hibernate.dialect.H2Dialect"); | ||||
|     properties.setProperty("hibernate.hbm2ddl.auto", "create-drop"); | ||||
|     return properties; | ||||
|   } | ||||
|  | ||||
|   @Bean | ||||
|   public JpaTransactionManager transactionManager() throws SQLException { | ||||
|     JpaTransactionManager transactionManager = new JpaTransactionManager(); | ||||
|     transactionManager.setEntityManagerFactory(entityManagerFactory().getObject()); | ||||
|     return transactionManager; | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * Program entry point | ||||
|    *  | ||||
|    * @param args | ||||
|    *          command line args | ||||
|    */ | ||||
|   public static void main(String[] args) { | ||||
|  | ||||
|     AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext( | ||||
|         AppConfig.class); | ||||
|     PersonRepository repository = context.getBean(PersonRepository.class); | ||||
|  | ||||
|     Person peter = new Person("Peter", "Sagan", 17); | ||||
|     Person nasta = new Person("Nasta", "Kuzminova", 25); | ||||
|     Person john = new Person("John", "lawrence", 35); | ||||
|     Person terry = new Person("Terry", "Law", 36); | ||||
|  | ||||
|     // Add new Person records | ||||
|     repository.save(peter); | ||||
|     repository.save(nasta); | ||||
|     repository.save(john); | ||||
|     repository.save(terry); | ||||
|  | ||||
|     // Count Person records | ||||
|     System.out.println("Count Person records: " + repository.count()); | ||||
|  | ||||
|     // Print all records | ||||
|     List<Person> persons = (List<Person>) repository.findAll(); | ||||
|     for (Person person : persons) { | ||||
|       System.out.println(person); | ||||
|     } | ||||
| 	 | ||||
| 	  /** | ||||
| 	   * Program entry point | ||||
| 	   *  | ||||
| 	   * @param args command line args | ||||
| 	   */ | ||||
| 	  public static void main(String[] args) { | ||||
|  | ||||
| 		AnnotationConfigApplicationContext context = new AnnotationConfigApplicationContext(AppConfig.class); | ||||
| 	    PersonRepository repository = context.getBean(PersonRepository.class); | ||||
|     // Update Person | ||||
|     nasta.setName("Barbora"); | ||||
|     nasta.setSurname("Spotakova"); | ||||
|     repository.save(nasta); | ||||
|  | ||||
| 	    Person peter = new Person("Peter", "Sagan", 17); | ||||
| 	    Person nasta = new Person("Nasta", "Kuzminova", 25); | ||||
| 	    Person john = new Person("John", "lawrence", 35); | ||||
| 	    Person terry = new Person("Terry", "Law", 36); | ||||
|     System.out.println("Find by id 2: " + repository.findOne(2L)); | ||||
|  | ||||
| 	    // Add new Person records | ||||
| 	    repository.save(peter); | ||||
| 	    repository.save(nasta); | ||||
| 	    repository.save(john); | ||||
| 	    repository.save(terry); | ||||
|     // Remove record from Person | ||||
|     repository.delete(2L); | ||||
|  | ||||
| 	    // Count Person records | ||||
| 	    System.out.println("Count Person records: " + repository.count()); | ||||
|     // count records | ||||
|     System.out.println("Count Person records: " + repository.count()); | ||||
|  | ||||
| 	    // Print all records | ||||
| 	    List<Person> persons = (List<Person>) repository.findAll(); | ||||
| 	    for (Person person : persons) { | ||||
| 	      System.out.println(person); | ||||
| 	    } | ||||
|     // find by name | ||||
|     Person p = repository.findOne(new PersonSpecifications.NameEqualSpec("John")); | ||||
|     System.out.println("Find by John is " + p); | ||||
|  | ||||
| 	    // Update Person | ||||
| 	    nasta.setName("Barbora"); | ||||
| 	    nasta.setSurname("Spotakova"); | ||||
| 	    repository.save(nasta); | ||||
|     // find by age | ||||
|     persons = repository.findAll(new PersonSpecifications.AgeBetweenSpec(20, 40)); | ||||
|  | ||||
| 	    System.out.println("Find by id 2: " + repository.findOne(2L)); | ||||
|     System.out.println("Find Person with age between 20,40: "); | ||||
|     for (Person person : persons) { | ||||
|       System.out.println(person); | ||||
|     } | ||||
|  | ||||
| 	    // Remove record from Person | ||||
| 	    repository.delete(2L); | ||||
|     context.close(); | ||||
|  | ||||
| 	    // count records | ||||
| 	    System.out.println("Count Person records: " + repository.count()); | ||||
|  | ||||
| 	    // find by name | ||||
| 	    Person p = repository.findOne(new PersonSpecifications.NameEqualSpec("John")); | ||||
| 	    System.out.println("Find by John is " + p); | ||||
|  | ||||
| 	    // find by age | ||||
| 	    persons = repository.findAll(new PersonSpecifications.AgeBetweenSpec(20, 40)); | ||||
|  | ||||
| 	    System.out.println("Find Person with age between 20,40: "); | ||||
| 	    for (Person person : persons) { | ||||
| 	      System.out.println(person); | ||||
| 	    } | ||||
|  | ||||
| 	    context.close(); | ||||
|  | ||||
| 	  } | ||||
|   } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -20,7 +20,8 @@ public class Person { | ||||
|  | ||||
|   private int age; | ||||
|  | ||||
|   public Person() {} | ||||
|   public Person() { | ||||
|   } | ||||
|  | ||||
|   public Person(String name, String surname, int age) { | ||||
|     this.name = name; | ||||
| @@ -52,7 +53,6 @@ public class Person { | ||||
|     this.surname = surname; | ||||
|   } | ||||
|  | ||||
|  | ||||
|   public int getAge() { | ||||
|     return age; | ||||
|   } | ||||
|   | ||||
| @@ -31,6 +31,7 @@ public class PersonSpecifications { | ||||
|     } | ||||
|  | ||||
|   } | ||||
|  | ||||
|   public static class NameEqualSpec implements Specification<Person> { | ||||
|  | ||||
|     public String name; | ||||
| @@ -47,4 +48,3 @@ public class PersonSpecifications { | ||||
|   } | ||||
|  | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -22,9 +22,10 @@ import com.google.common.collect.Lists; | ||||
| /** | ||||
|  * Test case to test the functions of {@link PersonRepository}, beside the CRUD functions, the query | ||||
|  * by {@link org.springframework.data.jpa.domain.Specification} are also test. | ||||
|  *  | ||||
|  */ | ||||
| @RunWith(SpringJUnit4ClassRunner.class) | ||||
| @ContextConfiguration(classes = { AppConfig.class}, loader = AnnotationConfigContextLoader.class) | ||||
| @ContextConfiguration(classes = { AppConfig.class }, loader = AnnotationConfigContextLoader.class) | ||||
| public class AnnotationBasedRepositoryTest { | ||||
|  | ||||
|   @Resource | ||||
| @@ -107,4 +108,3 @@ public class AnnotationBasedRepositoryTest { | ||||
|   } | ||||
|  | ||||
| } | ||||
|  | ||||
|   | ||||
| @@ -20,35 +20,36 @@ import org.springframework.transaction.annotation.Transactional; | ||||
|  *  | ||||
|  */ | ||||
| @RunWith(SpringJUnit4ClassRunner.class) | ||||
| @ContextConfiguration(classes = { AppConfig.class}, loader = AnnotationConfigContextLoader.class) | ||||
| @ContextConfiguration(classes = { AppConfig.class }, loader = AnnotationConfigContextLoader.class) | ||||
| public class AppConfigTest { | ||||
|  | ||||
| 	@Autowired | ||||
| 	DataSource dataSource; | ||||
| 	 | ||||
| 	/** | ||||
| 	 * Test for bean instance | ||||
| 	 */ | ||||
| 	@Test | ||||
| 	public void testDataSource() { | ||||
| 		assertNotNull(dataSource); | ||||
| 	} | ||||
| 	 | ||||
| 	/** | ||||
| 	 * Test for correct query execution  | ||||
| 	 * @throws SQLException  | ||||
| 	 */ | ||||
| 	@Test | ||||
| 	@Transactional | ||||
| 	public void testQuery() throws SQLException{ | ||||
| 		ResultSet resultSet =  dataSource.getConnection().createStatement().executeQuery("SELECT 1"); | ||||
| 		String result = null; | ||||
| 		String expected = "1"; | ||||
| 		while (resultSet.next()) { | ||||
| 			result = resultSet.getString(1); | ||||
| 			 | ||||
| 		} | ||||
| 		assertTrue(result.equals(expected)); | ||||
| 	} | ||||
|   @Autowired | ||||
|   DataSource dataSource; | ||||
|  | ||||
|   /** | ||||
|    * Test for bean instance | ||||
|    */ | ||||
|   @Test | ||||
|   public void testDataSource() { | ||||
|     assertNotNull(dataSource); | ||||
|   } | ||||
|  | ||||
|   /** | ||||
|    * Test for correct query execution | ||||
|    *  | ||||
|    * @throws SQLException | ||||
|    */ | ||||
|   @Test | ||||
|   @Transactional | ||||
|   public void testQuery() throws SQLException { | ||||
|     ResultSet resultSet = dataSource.getConnection().createStatement().executeQuery("SELECT 1"); | ||||
|     String result = null; | ||||
|     String expected = "1"; | ||||
|     while (resultSet.next()) { | ||||
|       result = resultSet.getString(1); | ||||
|  | ||||
|     } | ||||
|     assertTrue(result.equals(expected)); | ||||
|   } | ||||
|  | ||||
| } | ||||
|   | ||||
| @@ -23,7 +23,7 @@ import com.google.common.collect.Lists; | ||||
|  * by {@link org.springframework.data.jpa.domain.Specification} are also test. | ||||
|  */ | ||||
| @RunWith(SpringJUnit4ClassRunner.class) | ||||
| @ContextConfiguration(locations = {"classpath:applicationContext.xml"}) | ||||
| @ContextConfiguration(locations = { "classpath:applicationContext.xml" }) | ||||
| public class RepositoryTest { | ||||
|  | ||||
|   @Resource | ||||
| @@ -106,4 +106,3 @@ public class RepositoryTest { | ||||
|   } | ||||
|  | ||||
| } | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user