diff --git a/2019-08/spring-10/pom.xml b/2019-08/spring-10/pom.xml new file mode 100644 index 00000000..f25d4b3c --- /dev/null +++ b/2019-08/spring-10/pom.xml @@ -0,0 +1,17 @@ + + + 4.0.0 + + ru.otus + spring-10 + 1.0 + + pom + + + spring-10-exercise + spring-10-solution + + diff --git a/2019-08/spring-10/spring-10-exercise/pom.xml b/2019-08/spring-10/spring-10-exercise/pom.xml new file mode 100644 index 00000000..b7df6e08 --- /dev/null +++ b/2019-08/spring-10/spring-10-exercise/pom.xml @@ -0,0 +1,40 @@ + + + 4.0.0 + + ru.otus + spring-10-exercise + 1.0-SNAPSHOT + + + org.springframework.boot + spring-boot-starter-parent + 2.0.3.RELEASE + + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-starter-data-jpa + + + com.h2database + h2 + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/2019-08/spring-10/spring-10-exercise/src/main/java/ru/otus/spring10/Main.java b/2019-08/spring-10/spring-10-exercise/src/main/java/ru/otus/spring10/Main.java new file mode 100644 index 00000000..9eba4317 --- /dev/null +++ b/2019-08/spring-10/spring-10-exercise/src/main/java/ru/otus/spring10/Main.java @@ -0,0 +1,27 @@ +package ru.otus.spring10; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.ApplicationContext; +import ru.otus.spring10.domain.Person; +//import ru.otus.spring10.repostory.PersonRepository; + +import javax.annotation.PostConstruct; + +@SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") +@SpringBootApplication +public class Main { + + public static void main(String[] args) { + SpringApplication.run(Main.class); + } + +// @Autowired +// private PersonRepository repository; + + @PostConstruct + public void init() { +// repository.save(new Person("Pushkin")); + } +} diff --git a/2019-08/spring-10/spring-10-exercise/src/main/java/ru/otus/spring10/domain/Email.java b/2019-08/spring-10/spring-10-exercise/src/main/java/ru/otus/spring10/domain/Email.java new file mode 100644 index 00000000..a30abd9d --- /dev/null +++ b/2019-08/spring-10/spring-10-exercise/src/main/java/ru/otus/spring10/domain/Email.java @@ -0,0 +1,20 @@ +package ru.otus.spring10.domain; + +public class Email { + + private int id; + + private String email; + + public Email(String email) { + this.email = email; + } + + public int getId() { + return id; + } + + public String getEmail() { + return email; + } +} diff --git a/2019-08/spring-10/spring-10-exercise/src/main/java/ru/otus/spring10/domain/Person.java b/2019-08/spring-10/spring-10-exercise/src/main/java/ru/otus/spring10/domain/Person.java new file mode 100644 index 00000000..280a65a1 --- /dev/null +++ b/2019-08/spring-10/spring-10-exercise/src/main/java/ru/otus/spring10/domain/Person.java @@ -0,0 +1,34 @@ +package ru.otus.spring10.domain; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity +public class Person { + + @Id + @GeneratedValue + private int id; + private String name; + + public Person(String name) { + this.name = name; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/2019-08/spring-10/spring-10-solution/pom.xml b/2019-08/spring-10/spring-10-solution/pom.xml new file mode 100644 index 00000000..2f794d36 --- /dev/null +++ b/2019-08/spring-10/spring-10-solution/pom.xml @@ -0,0 +1,45 @@ + + + 4.0.0 + + ru.otus + spring-10-solution + 1.0-SNAPSHOT + + + org.springframework.boot + spring-boot-starter-parent + 2.0.3.RELEASE + + + + + org.springframework.boot + spring-boot-starter + + + org.springframework.boot + spring-boot-starter-data-jpa + + + com.h2database + h2 + + + org.springframework.boot + spring-boot-starter-test + test + + + + + + + org.springframework.boot + spring-boot-maven-plugin + + + + diff --git a/2019-08/spring-10/spring-10-solution/src/main/java/ru/otus/spring10/Main.java b/2019-08/spring-10/spring-10-solution/src/main/java/ru/otus/spring10/Main.java new file mode 100644 index 00000000..6893bcf9 --- /dev/null +++ b/2019-08/spring-10/spring-10-solution/src/main/java/ru/otus/spring10/Main.java @@ -0,0 +1,36 @@ +package ru.otus.spring10; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import ru.otus.spring10.domain.Email; +import ru.otus.spring10.domain.Person; +import ru.otus.spring10.repostory.EmailRepository; +import ru.otus.spring10.repostory.PersonRepository; + +import javax.annotation.PostConstruct; + +@SuppressWarnings("SpringJavaAutowiredFieldsWarningInspection") +@SpringBootApplication +public class Main { + + public static void main(String[] args) { + SpringApplication.run(Main.class); + } + + @Autowired + private PersonRepository repository; + + @Autowired + private EmailRepository emailRepository; + + @PostConstruct + public void init() { + repository.save(new Person("Pushkin")); + System.out.println(repository.findByName("Pushkin")); + + emailRepository.save(new Email("alex@pushkin.ru")); + System.out.println(emailRepository.findAll()); + + } +} diff --git a/2019-08/spring-10/spring-10-solution/src/main/java/ru/otus/spring10/domain/Email.java b/2019-08/spring-10/spring-10-solution/src/main/java/ru/otus/spring10/domain/Email.java new file mode 100644 index 00000000..3a21a340 --- /dev/null +++ b/2019-08/spring-10/spring-10-solution/src/main/java/ru/otus/spring10/domain/Email.java @@ -0,0 +1,38 @@ +package ru.otus.spring10.domain; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity +public class Email { + + @Id + @GeneratedValue + private int id; + + private String email; + + public Email() { + } + + @Override + public String toString() { + return "Email{" + + "id=" + id + + ", email='" + email + '\'' + + '}'; + } + + public Email(String email) { + this.email = email; + } + + public int getId() { + return id; + } + + public String getEmail() { + return email; + } +} diff --git a/2019-08/spring-10/spring-10-solution/src/main/java/ru/otus/spring10/domain/Person.java b/2019-08/spring-10/spring-10-solution/src/main/java/ru/otus/spring10/domain/Person.java new file mode 100644 index 00000000..78ed70cb --- /dev/null +++ b/2019-08/spring-10/spring-10-solution/src/main/java/ru/otus/spring10/domain/Person.java @@ -0,0 +1,45 @@ +package ru.otus.spring10.domain; + +import javax.persistence.Entity; +import javax.persistence.GeneratedValue; +import javax.persistence.Id; + +@Entity +public class Person { + + @Id + @GeneratedValue + private int id; + private String name; + + public Person() { + } + + @Override + public String toString() { + return "Person{" + + "id=" + id + + ", name='" + name + '\'' + + '}'; + } + + public Person(String name) { + this.name = name; + } + + public int getId() { + return id; + } + + public void setId(int id) { + this.id = id; + } + + public String getName() { + return name; + } + + public void setName(String name) { + this.name = name; + } +} diff --git a/2019-08/spring-10/spring-10-solution/src/main/java/ru/otus/spring10/repostory/EmailRepository.java b/2019-08/spring-10/spring-10-solution/src/main/java/ru/otus/spring10/repostory/EmailRepository.java new file mode 100644 index 00000000..9549d774 --- /dev/null +++ b/2019-08/spring-10/spring-10-solution/src/main/java/ru/otus/spring10/repostory/EmailRepository.java @@ -0,0 +1,12 @@ +package ru.otus.spring10.repostory; + +import org.springframework.data.jpa.repository.JpaRepository; +import org.springframework.data.repository.PagingAndSortingRepository; +import ru.otus.spring10.domain.Email; + +import java.util.List; + +public interface EmailRepository extends JpaRepository { + + List findAll(); +} diff --git a/2019-08/spring-10/spring-10-solution/src/main/java/ru/otus/spring10/repostory/PersonRepository.java b/2019-08/spring-10/spring-10-solution/src/main/java/ru/otus/spring10/repostory/PersonRepository.java new file mode 100644 index 00000000..ca10d886 --- /dev/null +++ b/2019-08/spring-10/spring-10-solution/src/main/java/ru/otus/spring10/repostory/PersonRepository.java @@ -0,0 +1,13 @@ +package ru.otus.spring10.repostory; + +import org.springframework.data.repository.CrudRepository; +import ru.otus.spring10.domain.Person; + +import java.util.List; + +public interface PersonRepository extends CrudRepository { + + List findAll(); + + Person findByName(String s); +} diff --git a/2019-08/spring-10/spring-10-solution/src/test/java/ru.otus.spring10/repository/PersonTest.java b/2019-08/spring-10/spring-10-solution/src/test/java/ru.otus.spring10/repository/PersonTest.java new file mode 100644 index 00000000..dbc63f2c --- /dev/null +++ b/2019-08/spring-10/spring-10-solution/src/test/java/ru.otus.spring10/repository/PersonTest.java @@ -0,0 +1,42 @@ +package ru.otus.spring10.repository; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; +import org.springframework.test.context.junit4.SpringRunner; +import ru.otus.spring10.domain.Person; +import ru.otus.spring10.repostory.PersonRepository; + +@RunWith(SpringRunner.class) +@DataJpaTest +public class PersonTest { + + @Autowired + private PersonRepository personRepository; + + @Before + public void init(){ + personRepository.save(new Person("Alex")); + } + + @Test + public void testPersonName() { + Person person = personRepository.findByName("Alex"); + Assert.assertEquals("Alex", person.getName()); + } + + @Test + public void testCount(){ + System.out.println(personRepository.findAll()); + Assert.assertTrue(personRepository.count() > 0); + } + + @Test + public void testDeleteAll(){ + personRepository.deleteAll(); + Assert.assertEquals(0, personRepository.count()); + } +}