Spring
Basic
Useful Annotation

Lombok

Builder

  • Builder.Default : 값을 지정하지 안ㅎ아도 기본 값이 들어갈 수 있도록 해준다.
    // 빌더 패턴에서 생성되지 않고 기본 생성자 (List.of())로 생성될 수 있도록 한다.
    @Builder.Default
    private List<PostEntity> postList = List.of();

Builder(일반화 하는 경우)

일반화를 하고 Lombok을 통해서 Builder를 사용하는 경우 Base Class와 자식 Class에서 각각 @NoArgsConstructor Annotation과 @NoArgsConstructor Annotation을 필요로 한다.

Super Class(Base Code)
@Data
@SuperBuilder
@MappedSuperclass
@NoArgsConstructor
public class BaseEntity {
  @Id
  @GeneratedValue(strategy = GenerationType.IDENTITY)
  private Long id;
}
자식 Class
@NoArgsConstructor
@Data
@EqualsAndHashCode(callSuper = true)
@Entity
// 부모로부터 상속받은 변수를 포함하겠다.
@SuperBuilder
@Table(name = "account")
public class AccountEntity extends BaseEntity {
}

Hibernate

Where

필드명 = "조건"으로 SQL처럼 조건을 걸어줄 수 있다.

    // 여기에 해당하는 값만 가져온다.
    @Where(
        clause = "status = 'REGISTERED'"
    )
    private List<PostEntity> postList = List.of();

OrderBy

List를 정렬할 수 있다.

    @OrderBy("id desc") // Hibernate Annotation
    private List<PostEntity> postList = List.of();