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();