Entity란
Entity는 DB 테이블에 존재하는 Column을 필드로 가지는 객체를 뜻함. Entity는 DB 테이블과 1대1 대응관계이고, 테이블에 가지지 않는 Column을 필드로 가져서는 안 된다. 또한 다른 클래스를 상속받거나 인터페이스의 구현체여서는 안 된다.
Member 테이블에 id, name, age Column이 있으면
Spring Jpa를 사용할 때 아래와 같이 Entity 클래스를 작성할 수 있다.
@Entity
public class Member{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private int age;
}
@Entity어노테이션은 해당 클래스가 Entity 클래스라는 것을 명시한다
@Id 어노테이션은 해당 객체가 primary key임을 명시한다
@GeneratedValue(strategy = GenerationType.Identity) 어노테이션을 사용하면 DB에서 AUTO_INCREMENT 해준다.
DTO란
DTO란 Data Transfer Object로 데이터를 이동하기 위한 객체다. Controller와 Service, Repository 계층 사이에 데이터가 이동할 때 DTO형태로 이동한다. DTO는 비즈니스 로직을 갖고 있는 않는 순수한 객체이고 일반적으로 getter와 setter만 사용한다.
위의 Member클래스로 DTO를 작성하면 아래와 같이 작성할 수 있다.
@Getter
@Setter
class MemberDTO{
private Long id;
private String name;
private int age;
}
위는 setter를 사용하여 가변 객체로 활용한것이고
아래와 같이 생성자를 사용해 불변 객체로 활용할수있다
@Getter
class MemberDTO{
private final Long id;
private final String name;
private final int age;
public MemberDTO(Long id, String name, int age){
this.id = id;
this.name = name;
this.age = age;
}
}
위와 같이 생성자를 사용하여 초기화하면 데이터를 전달하는 과정에서 데이터가 변조되지않음을 보장할수있다.
Entity란
Entity는 DB 테이블에 존재하는 Column을 필드로 가지는 객체를 뜻함. Entity는 DB 테이블과 1대1 대응관계이고, 테이블에 가지지 않는 Column을 필드로 가져서는 안 된다. 또한 다른 클래스를 상속받거나 인터페이스의 구현체여서는 안 된다.
Member 테이블에 id, name, age Column이 있으면
Spring Jpa를 사용할 때 아래와 같이 Entity 클래스를 작성할 수 있다.
@Entity
public class Member{
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private String name;
private int age;
}
@Entity어노테이션은 해당 클래스가 Entity 클래스라는 것을 명시한다
@Id 어노테이션은 해당 객체가 primary key임을 명시한다
@GeneratedValue(strategy = GenerationType.Identity) 어노테이션을 사용하면 DB에서 AUTO_INCREMENT 해준다.
DTO란
DTO란 Data Transfer Object로 데이터를 이동하기 위한 객체다. Controller와 Service, Repository 계층 사이에 데이터가 이동할 때 DTO형태로 이동한다. DTO는 비즈니스 로직을 갖고 있는 않는 순수한 객체이고 일반적으로 getter와 setter만 사용한다.
위의 Member클래스로 DTO를 작성하면 아래와 같이 작성할 수 있다.
@Getter
@Setter
class MemberDTO{
private Long id;
private String name;
private int age;
}
위는 setter를 사용하여 가변 객체로 활용한것이고
아래와 같이 생성자를 사용해 불변 객체로 활용할수있다
@Getter
class MemberDTO{
private final Long id;
private final String name;
private final int age;
public MemberDTO(Long id, String name, int age){
this.id = id;
this.name = name;
this.age = age;
}
}
위와 같이 생성자를 사용하여 초기화하면 데이터를 전달하는 과정에서 데이터가 변조되지않음을 보장할수있다.