4.0.0 org.blog.test entity-test-project 0.1.0 org.springframework.boot spring-boot-starter-parent 1.3.1.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-jpa mysql mysql-connector-java org.projectlombok lombok 1.16.6 ch.qos.logback logback-core 1.1.3 ch.qos.logback logback-classic ch.qos.logback logback-access
src/main/resources/logback.xml
%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
src/main/resources/application.properties
====================================== # Datasource ====================================== spring.jpa.hibernate.ddl-auto=create spring.datasource.url=jdbc:mysql://localhost/test spring.datasource.username=root spring.datasource.password=root123 spring.datasource.driver-class-name=com.mysql.jdbc.Driver
src/main/java/Person.java
package org.blog.test.entity; import java.io.Serializable; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.GenerationType; import javax.persistence.Id; import javax.persistence.Inheritance; import javax.persistence.InheritanceType; import javax.persistence.Table; import lombok.Data; @Entity @Table(name = "person") @Inheritance(strategy = InheritanceType.SINGLE_TABLE) @Data public class Person implements Serializable { private static final long serialVersionUID = -7755708592262294343L; @Id @GeneratedValue(strategy = GenerationType.AUTO) @Column private Long id; @Column private String name; }
src/main/java/Student.java
package org.blog.test.entity; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.Table; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.ToString; @Entity @Table(name = "person") @Data @EqualsAndHashCode(callSuper = true) @ToString(callSuper = true) public class Student extends Person { private static final long serialVersionUID = 6147507813299618966L; @Column private Long age; }
src/main/java/PersonRepository.java
package org.blog.test.repository; import org.blog.test.entity.Person; import org.springframework.data.jpa.repository.JpaRepository; public interface PersonRepository extends JpaRepository{ }
src/main/java/StudentRepository.java
package org.blog.test.repository; import org.blog.test.entity.Person; import org.blog.test.entity.Student; import org.springframework.data.jpa.repository.JpaRepository; public interface StudentRepository extends JpaRepository{ }
src/main/java/TestApplication.java
package org.blog.test; import javax.annotation.PostConstruct; import org.blog.test.entity.Person; import org.blog.test.entity.Student; import org.blog.test.repository.PersonRepository; import org.blog.test.repository.StudentRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import lombok.extern.slf4j.Slf4j; @SpringBootApplication @Slf4j public class TestApplication { @Autowired private StudentRepository studentRepository; @Autowired private PersonRepository personRepository; public static void main(String[] args) { SpringApplication.run(TestApplication.class); } @PostConstruct public void run() { Person person = new Person(); person.setName("person"); personRepository.save(person); Student student = new Student(); student.setName("student"); student.setAge(20L); studentRepository.save(student); Student student1 = new Student(); student1.setName("student1"); student1.setAge(21L); studentRepository.save(student1); for (Person personData : personRepository.findAll()) { log.info("person data : {}", personData); } for (Student studentData : studentRepository.findAll()) { log.info("student data : {}", studentData); } } }
Execution Result
22:40:39.955 [main] INFO org.blog.test.TestApplication - person data : Person(id=1, name=person)
22:40:39.956 [main] INFO org.blog.test.TestApplication - person data : Student(super=Person(id=2, name=student), age=20)
22:40:39.956 [main] INFO org.blog.test.TestApplication - person data : Student(super=Person(id=3, name=student1), age=21)
22:40:39.964 [main] INFO org.blog.test.TestApplication - student data : Student(super=Person(id=2, name=student), age=20)
22:40:39.964 [main] INFO org.blog.test.TestApplication - student data : Student(super=Person(id=3, name=student1), age=21)
댓글 없음 :
댓글 쓰기