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)
댓글 없음 :
댓글 쓰기