파게로그

[Persistence Framework] DB의 View 이용하기 본문

콤퓨타 왕기초/Spring Boot

[Persistence Framework] DB의 View 이용하기

파게 2021. 5. 17. 02:00

특별한 기능을 사용하는 것은 아니다.

예를 들어 Assignment 하나의 정보를 보고자 한다면,

ASSIGNMENT 테이블의 내용과 CHAPTER 테이블의 내용이 JOIN되어야 한다.

이는 SQL을 통해 DB에서 직접 View를 생성하고, 이를 이용하는 메서드를 생성하는 정도로 정리할 수 있다.

그리고 Entity 패키지에는 Assignment를 상속받는 AssignmentView 클래스를 다음과 같이 생성할 수 있다.

 

package com.ddoongi.springbootwebprj.entity;

import java.sql.Date;

public class AssignmentView extends Assignment {
    private String chapterName;

    public AssignmentView() {

    }

    public AssignmentView(int assignment_no, String title, String content, Date regDate, int comments, boolean highlight, String chapterName) {
        super(assignment_no, title, content, regDate, comments, highlight);
        this.chapterName = chapterName;
    }

    public String getChapterName() {
        return chapterName;
    }

    public void setChapterName(String chapterName) {
        this.chapterName = chapterName;
    }

    @Override
    public String toString() {
        return "AssignmentView{" +
                "chapterName='" + chapterName + '\'' +
                '}'; // ...
    }
}

 

다만 메서드의 이름에 getViewList( )와 같이 View를 명시하여 헷갈리는 일이 없도록 하면 좋다.

 

SELECT * FROM assignment;

 

SELECT * FROM chapter;

 

SELECT A.*, c.name chapter_name
FROM assignment A
JOIN chapter C ON a.chapter = c.chapter_no;

 

 

곧, 우리는 다음의 SQL문을 통해 뷰를 생성할 수 있다.

CREATE VIEW AssignmentView
AS
SELECT A.*, c.name chapter_name
FROM assignment A
JOIN chapter C ON a.chapter = c.chapter_no;

 

 

Comments