public class Event {
private String name;
private String description;
private LocalDateTime beginEnrollmentDateTime;
private LocalDateTime closeEnrollmentDateTime;
private LocalDateTime beginEventDateTime;
private LocalDateTime endEventDateTime;
private String location;
private int basePrice;
private int maxPrice;
private int limitOfEnrollment;
private boolean offline;
private boolean free;
private EventStatus eventStatus;
}
public enum EventStatus {
DRAFT, PUBLISHED, BEGIN_ENROLLMENT;
}
public class EventTest {
@Test
public void builder() {
Event event = Event.builder()
.name("Inflearn Spring REST API")
.description("REST API development with Spring")
.build();
assertThat(event).isNotNull();
}
@Test
public void javaBean() {
Event event = new Event();
String name = "Event";
String description = "Spring";
event.setName(name);
event.setDescription(description);
assertThat(event.getName()).isEqualTo(name);
assertThat(event.getDescription()).isEqualTo(description);
}
}
@Builder @AllArgsConstructor @NoArgsConstructor
@Getter @Setter @EqualsAndHashCode(of = "id")
public class Event {
@AllArgsConstructor @NoArgsConstructor
@EqualsAndHashCode(of = "id")
- equals할 때 모든 필드를 사용하는데 연관 관계의 참조가 있으면 overflow 날 수 있기 때문에 식별자만 넣으면 된다.
- 줄일 수 는 없나?
- 스프링 같은 경우 커스텀한 메타 애노테이션을 만들 수 있지만 롬복 애노테이션은 불가능 하다.
- @Data는 ?
- equalsAndhashcode를 만들기 때문에 권장하지 않는다.