diff --git a/2019-11/spring-11/spring-data-class-work/.gitignore b/2019-11/spring-11/spring-data-class-work/.gitignore
new file mode 100644
index 00000000..4ea52072
--- /dev/null
+++ b/2019-11/spring-11/spring-data-class-work/.gitignore
@@ -0,0 +1,24 @@
+target/
+
+### STS ###
+.apt_generated
+.classpath
+.factorypath
+.project
+.settings
+.springBeans
+.sts4-cache
+
+### IntelliJ IDEA ###
+.idea
+*.iws
+*.iml
+*.ipr
+
+### NetBeans ###
+/nbproject/private/
+/build/
+/nbbuild/
+/dist/
+/nbdist/
+/.nb-gradle/
diff --git a/2019-11/spring-11/spring-data-class-work/pom.xml b/2019-11/spring-11/spring-data-class-work/pom.xml
new file mode 100644
index 00000000..b1a5d2e9
--- /dev/null
+++ b/2019-11/spring-11/spring-data-class-work/pom.xml
@@ -0,0 +1,17 @@
+
+
+ 4.0.0
+
+ ru.otus
+ spring-data-class-work
+ 1.0
+
+ pom
+
+
+ spring-data-exercise
+ spring-data-solution
+
+
diff --git a/2019-11/spring-11/spring-data-class-work/spring-data-exercise/pom.xml b/2019-11/spring-11/spring-data-class-work/spring-data-exercise/pom.xml
new file mode 100644
index 00000000..c338c7fd
--- /dev/null
+++ b/2019-11/spring-11/spring-data-class-work/spring-data-exercise/pom.xml
@@ -0,0 +1,45 @@
+
+
+ 4.0.0
+
+ ru.otus
+ spring-data-exercise
+ 1.0-SNAPSHOT
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.2.1.RELEASE
+
+
+
+ 11
+ 11
+
+
+
+
+ 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-11/spring-11/spring-data-class-work/spring-data-exercise/src/main/java/ru/otus/spring/Main.java b/2019-11/spring-11/spring-data-class-work/spring-data-exercise/src/main/java/ru/otus/spring/Main.java
new file mode 100644
index 00000000..3c223d05
--- /dev/null
+++ b/2019-11/spring-11/spring-data-class-work/spring-data-exercise/src/main/java/ru/otus/spring/Main.java
@@ -0,0 +1,28 @@
+package ru.otus.spring;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import ru.otus.spring.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"));
+
+// repository.findByName("Pushkin").forEach(System.out::println);
+ }
+}
diff --git a/2019-11/spring-11/spring-data-class-work/spring-data-exercise/src/main/java/ru/otus/spring/domain/Email.java b/2019-11/spring-11/spring-data-class-work/spring-data-exercise/src/main/java/ru/otus/spring/domain/Email.java
new file mode 100644
index 00000000..9ee84b8b
--- /dev/null
+++ b/2019-11/spring-11/spring-data-class-work/spring-data-exercise/src/main/java/ru/otus/spring/domain/Email.java
@@ -0,0 +1,28 @@
+package ru.otus.spring.domain;
+
+public class Email {
+
+ private int id;
+
+ private String email;
+
+ public Email() {
+ }
+
+ public Email(String email) {
+ this.email = email;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+
+ public Email(int id, String email) {
+ this.id = id;
+ this.email = email;
+ }
+}
diff --git a/2019-11/spring-11/spring-data-class-work/spring-data-exercise/src/main/java/ru/otus/spring/domain/Person.java b/2019-11/spring-11/spring-data-class-work/spring-data-exercise/src/main/java/ru/otus/spring/domain/Person.java
new file mode 100644
index 00000000..e0ea7855
--- /dev/null
+++ b/2019-11/spring-11/spring-data-class-work/spring-data-exercise/src/main/java/ru/otus/spring/domain/Person.java
@@ -0,0 +1,45 @@
+package ru.otus.spring.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() {
+ }
+
+ 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;
+ }
+
+ @Override
+ public String toString() {
+ return "Person{" +
+ "id=" + id +
+ ", name='" + name + '\'' +
+ '}';
+ }
+}
diff --git a/2019-11/spring-11/spring-data-class-work/spring-data-exercise/src/main/java/ru/otus/spring/repository/package-info.java b/2019-11/spring-11/spring-data-class-work/spring-data-exercise/src/main/java/ru/otus/spring/repository/package-info.java
new file mode 100644
index 00000000..cadc9854
--- /dev/null
+++ b/2019-11/spring-11/spring-data-class-work/spring-data-exercise/src/main/java/ru/otus/spring/repository/package-info.java
@@ -0,0 +1,3 @@
+package ru.otus.spring.repository;
+
+// TODO: в этот package необходимо добавить репозиторий
diff --git a/2019-11/spring-11/spring-data-class-work/spring-data-solution/pom.xml b/2019-11/spring-11/spring-data-class-work/spring-data-solution/pom.xml
new file mode 100644
index 00000000..e99c0254
--- /dev/null
+++ b/2019-11/spring-11/spring-data-class-work/spring-data-solution/pom.xml
@@ -0,0 +1,45 @@
+
+
+ 4.0.0
+
+ ru.otus
+ spring-data-solution
+ 1.0-SNAPSHOT
+
+
+ org.springframework.boot
+ spring-boot-starter-parent
+ 2.2.1.RELEASE
+
+
+
+ 11
+ 11
+
+
+
+
+ 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-11/spring-11/spring-data-class-work/spring-data-solution/src/main/java/ru/otus/spring/Main.java b/2019-11/spring-11/spring-data-class-work/spring-data-solution/src/main/java/ru/otus/spring/Main.java
new file mode 100644
index 00000000..8db5d5f7
--- /dev/null
+++ b/2019-11/spring-11/spring-data-class-work/spring-data-solution/src/main/java/ru/otus/spring/Main.java
@@ -0,0 +1,28 @@
+package ru.otus.spring;
+
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.boot.SpringApplication;
+import org.springframework.boot.autoconfigure.SpringBootApplication;
+import ru.otus.spring.domain.Person;
+import ru.otus.spring.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"));
+
+ repository.findByName("Pushkin").forEach(System.out::println);
+ }
+}
diff --git a/2019-11/spring-11/spring-data-class-work/spring-data-solution/src/main/java/ru/otus/spring/domain/Email.java b/2019-11/spring-11/spring-data-class-work/spring-data-solution/src/main/java/ru/otus/spring/domain/Email.java
new file mode 100644
index 00000000..9c67d020
--- /dev/null
+++ b/2019-11/spring-11/spring-data-class-work/spring-data-solution/src/main/java/ru/otus/spring/domain/Email.java
@@ -0,0 +1,23 @@
+package ru.otus.spring.domain;
+
+public class Email {
+
+ private int id;
+
+ private String email;
+
+ public Email() {
+ }
+
+ public Email(String email) {
+ this.email = email;
+ }
+
+ public int getId() {
+ return id;
+ }
+
+ public String getEmail() {
+ return email;
+ }
+}
diff --git a/2019-11/spring-11/spring-data-class-work/spring-data-solution/src/main/java/ru/otus/spring/domain/Person.java b/2019-11/spring-11/spring-data-class-work/spring-data-solution/src/main/java/ru/otus/spring/domain/Person.java
new file mode 100644
index 00000000..e0ea7855
--- /dev/null
+++ b/2019-11/spring-11/spring-data-class-work/spring-data-solution/src/main/java/ru/otus/spring/domain/Person.java
@@ -0,0 +1,45 @@
+package ru.otus.spring.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() {
+ }
+
+ 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;
+ }
+
+ @Override
+ public String toString() {
+ return "Person{" +
+ "id=" + id +
+ ", name='" + name + '\'' +
+ '}';
+ }
+}
diff --git a/2019-11/spring-11/spring-data-class-work/spring-data-solution/src/main/java/ru/otus/spring/repostory/PersonRepository.java b/2019-11/spring-11/spring-data-class-work/spring-data-solution/src/main/java/ru/otus/spring/repostory/PersonRepository.java
new file mode 100644
index 00000000..b7799275
--- /dev/null
+++ b/2019-11/spring-11/spring-data-class-work/spring-data-solution/src/main/java/ru/otus/spring/repostory/PersonRepository.java
@@ -0,0 +1,12 @@
+package ru.otus.spring.repostory;
+
+import org.springframework.data.jpa.repository.JpaRepository;
+import org.springframework.data.repository.CrudRepository;
+import ru.otus.spring.domain.Person;
+
+import java.util.List;
+
+public interface PersonRepository extends JpaRepository {
+
+ List findByName(String name);
+}