Notice
Recent Posts
Recent Comments
Link
개발 무지렁이
[Spring Boot] ORM의 표준스펙 JPA 및 엔티티(Entity) 본문

ORM(Object Relational Mapping)
📍. 쿼리문 대신 ☕자바코드로 데이터베이스의 데이터를 처리할 수 있다.
📍. 내부에서 안전한 SQL 쿼리 자동 생성
📍. 내부에서 안전한 SQL 쿼리 자동 생성
JPA(Java Persistence API): 🧱 ORM 프레임워크의 표준 스펙
📍. 객체 지향 프로그래밍 모델과 관계형 데이터베이스 사이의 불일치를 해결하기 위해 개발
📍. 개발자가 SQL쿼리를 직접 작성하지 않아도 된다.
📍. JPA를 구현한 실제 클래스: Hibernate
📍. JPA를 구현한 실제 클래스: Hibernate
❓ SQL쿼리문
```
insert into question(subject, content) values('안녕하세요', '가입인사 드립니다^^');
```
☕ Java
```
Question q = new Question();
q.setSubject("안녕하세요");
q.setContent("가입인사 드립니다^^");
```
엔티티(Entity)
[Question.java]
@Getter
@Setter
@Entity
public class Question {
@Id // 기본키 지정
@GeneratedValue(strategy = GenerationType.IDENTITY) // 1씩 자동증가
private Integer id;
@Column(length = 200) // 글자수 제한 200
private String subject;
@Column(columnDefinition = "TEXT") // 글자수를 제한 X
private String content;
private LocalDateTime createDate;
@OneToMany(mappedBy="question", cascade = CascadeType.REMOVE) // 참조엔티티의 속성명: question, CascadeType.REMOVE: 질문을 삭제하면 답변들도 모두 삭제
private List<Answer> answerList;
}
[Answer.java]
@Getter
@Setter
@Entity
public class Answer {
@Id
rivate @GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@Column(columnDefinition = "TEXT")
private String content;
private LocalDateTime createDate;
@ManyToOne // '질문' 하나당 '답변' 여러개로 구성될 수 있다, 실제 데이터베이스에서 ForeignKey 관계 생성
p Question question;
}

'Backend > 스프링부트' 카테고리의 다른 글
[Spring Boot] File 객체와 MultipartFile 인터페이스 (0) | 2022.11.26 |
---|---|
[Spring Boot] 기본세팅 (0) | 2022.11.26 |
[Spring Boot] 쿠키(Cookie)와 세션(Session), CSRF (0) | 2022.11.26 |
[Spring Boot] 리포지터리 CRUD 메서드 테스트 (0) | 2022.11.25 |
[Spring Boot] 스프링부트 프로젝트의 구조와 컨트롤러 (0) | 2022.11.25 |
Comments