인프런 커뮤니티 질문&답변

lkis71님의 프로필 이미지
lkis71

작성한 질문수

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

setter없이 생성메서드 생성하는 방법

작성

·

317

0

안녕하세요

강사님, 서포터즈님들

JPA 실전까지 모두 완강하고 개인 프로젝트를 진행 중입니다.

강사님께서 강의 때 setter의 사용을 지양하라고 하셨는데,

생성메서드 생성 시 setter를 사용하지 않고 제가 짠 코드대로 해도 문제가 없을까요?

 

---------

생각해보니까 이것도 setter를 사용한거나 다름 없는 것 같은데, 생성메서드 생성할 때 setter없이 하는 방법이 있나요?

 

    @Id @GeneratedValue
    @Column(name = "fileId")
    private Long id;

    private String fileNm;

    private String path;

    private Long size;

    private String extension;

    private String fileType;

    @JoinColumn(name = "restaurantId")
    @OneToOne(fetch = FetchType.LAZY)
    private Restaurant restaurant;
    
    @JoinColumn(name = "menuId")
    @OneToOne(fetch = FetchType.LAZY)
    private Menu menu;

    //생성메서드
    public static FileEntity createFile(FileEntity fileInfo) {

        FileEntity file = new FileEntity();
        file.setFile(fileInfo.getFileNm(), fileInfo.getPath(), fileInfo.getSize(), fileInfo.getExtension(), fileInfo.getFileType());

        return file;
    }

    public void setFile(String fileNm, String path, Long size, String extension, String fileType) {
        this.fileNm = fileNm;
        this.path = path;
        this.size = size;
        this.extension = extension;
        this.fileType = fileType;
    }

답변 1

0

안녕하세요. lkis71님, 공식 서포터즈 David입니다.

네, 이렇게 작성하셔도 무방하지만

특정 파라미터들을 받는 private 생성자를 사용하셔도 좋을 것 같습니다.

감사합니다.

lkis71님의 프로필 이미지
lkis71

작성한 질문수

질문하기