도메인 로직이 포함된 객체로 데이터베이스에 저장되고 관리된다
@Entity
@Table(name = "employees")
public class Employee {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@Column(name = "name")
private String name;
@Column(name = "salary")
private double salary;
}
데이터 전달을 위한 객체로 불변성을 가지며 로직을 포함하지 않는다
@Getter
@Setter
public class EmployeeDTO {
private Long id;
private String name;
private double salary;
}
도메인의 특정 값을 나타내며 비교나 동등성 체크 등에 사용된다
public class Address {
private String street;
private String city;
private String state;
private String zipCode;
public Address(String street, String city, String state, String zipCode) {
this.street = street;
this.city = city;
this.state = state;
this.zipCode = zipCode;
}
}