양방향 매핑 & Optional

SHIN's avatar
Sep 04, 2024
양방향 매핑 & Optional
 
@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 예제

  1. Inner Join을 통한 각각의 게시글에 user를 Join 시킴
notion image
 
  1. Where문
notion image
 
 
  1. Inline View
  • sub query가 FROM 절에서 안에서 사용되는 경우.
  • FROM 절에서 사용된 sub query의 결과가 하나의 테이블에 대한 View처럼 사용
  • 별칭을 사용하기 위해 사용
notion image
 
notion image
 
 
 

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

SHIN