@Getter
@Setter
@NoArgsConstructor
@Table(name = "reply_tb")
@Entity
public class Reply {
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Integer id;
@ManyToOne(fetch = FetchType.LAZY)
private User user;
@OneToMany(mappedBy = "board") // tb = one
private List<Reply> replies; // 테이블 컬럼 생성이 아닌 단순 조회용 -> 양방향 매핑
@ManyToOne(fetch = FetchType.LAZY)
private Board board;
private String comment; // 댓글 내용
@CreationTimestamp // em.presist 할 때 발동
private Timestamp createdAt;
}
Join 예제
- Inner Join을 통한 각각의 게시글에 user를 Join 시킴

- Where문

- Inline View
- sub query가 FROM 절에서 안에서 사용되는 경우.
- FROM 절에서 사용된 sub query의 결과가 하나의 테이블에 대한 View처럼 사용
- 별칭을 사용하기 위해 사용


- Java에서
Optional
객체를 만드는 방법 Optional
은 Java 8에서 추가된 클래스이며, 이는 값이 있을 수도 있고 없을 수도 있는 컨테이너 역할Optional
을 사용하면 null 값을 다룰 때 발생할 수 있는 NullPointerException을 방지 가능- 빈
Optional
객체 생성빈Optional
객체를 만들려면Optional.empty()
를 사용
Optional
객체를 만드는 방법Optional<String> emptyOptional = Optional.empty();
- 값이 있는
Optional
객체 생성값이 있는Optional
객체를 만들려면Optional.of()
를 사용 이 메소드는 절대 null을 허용X. 만약 null을 전달하면NullPointerException
이 발생
Optional<String> optionalWithValue = Optional.of("Hello, World!");
- null이 될 수 있는 값을 가진
Optional
객체 생성 null이 될 수 있는 값을 감싸는Optional
을 만들려면Optional.ofNullable()
을 사용 이 메소드는 null 값을 허용, 만약 전달된 값이 null이면 빈Optional
객체를 반환
Optional<String> optionalWithNullableValue = Optional.ofNullable("Hello, World!");
Optional<String> optionalWithNull = Optional.ofNullable(null); // 빈 Optional 반환
- Optional 값 사용하기 (Optional 객체에서 값을 가져오는 방법)
- Ex) 값이 존재할 때만 특정 작업을 수행하려면
ifPresent()
메소드 사용 가능
optionalWithValue.ifPresent(value -> System.out.println(value));
값이 있으면 그 값을 반환하고, 없으면 기본값을 반환하려면
orElse()
메소드 사용 가능String value = optionalWithValue.orElse("Default Value");
이와 같은 방법으로
Optional
을 활용하면 null을 보다 안전하게 처리 가능Share article