본문 바로가기

분류 전체보기

(98)
local variable ~~~ is reundant. 노란전구 뜨고, local variable productSize is redundant. 라고 수정사항이 떴다. : 로컬 변수가 불필요하다 라는 뜻이다. 가만보니.. 변수선언 없이도 리턴 붙이면 되는거였다. 이렇게 !
@MapsId @JoinColumn @ManyToOne @MapsId("userNo") @JoinColumn(name = "user_no") private User user; --> 아 joincolumn을 안하면 db에서 확인이 안됨. 저거 어노테이션 붙이면 user_no로 컬럼 추가됨.
cascade? (=종속) 캐스케이드 옵션이란, 엔티티의 상태변화를 연관되어있는 엔티티에도 전파 시키는 옵션이다. (부모 엔티티의변화를 자식 엔티티로 전파) onetomany나 manytoone에 적용시킬 수 있다. 기본적으로는 아무것도 전파시키지 않는다. Entity의 상태 1. Transient() : 객체를 생성하고 값을 주어도, JPA나 hibernate가 아무것도 모르는 상태. 즉, db왜 매핑된것이 아무것도 없다. 2. Persistent() : 저장을 하고 나서, JPA가 알고 관리하는 상태. 그러나 save()를 했다고 해서 db에 바로 저장되는 것은 아님. jpa가 persistent상태로 관리하고 있다가, 이후에 데이터를 저장한다. (1차 캐시, Dirty Checking(변경사항 감지), Write Behind..
rest api 명세작성 -> 요청 데이터 제대로 쓰는법 get 요청 body에 담으면 안되면 요청데이터 없는거 아닌가? -> 아님. pathvariable없으면 쿼리파라미터? 로 쓰면 된다.. 헤더에 있나? 쿼리파라미터는 url에 쓰지말고 요청데이터에.. 필수값인지? 디폴트값, 타입 이런거 상세히 명시해줘야함.
Optional 클래스 의 예외처리 메서드 .orElseThrow() 사용기 orElseThrow는 서버측에서 까지만 확인되는 예외처리인가, 아니면 클라이언트측 까지 전달되는건가? --> 서버까지만. orElseThrow를 쓰고, if ,else 지양 하라길래, orElseThrow에서 return ResponseEntity ~~ 해버려서 상위 api메서드 중지까지 하려고 햇음. 뭐 무슨 람다표현식 써서.. supplier적용하여.. 어쩌고 하라길래 해봤는데 --> 안된다. orElseThrow메서드는 예외를 던질 때만 사용하는 애다. 뭐.. 사용자정의예외처리 클래스 정의해서 ㅇㅓ찌저찌 해볼 수 있겠지만... 코드가 지저분해질것같다. 저 안에 다른 클래스 필드가 있는자체가 이상하다. 해결방법은 의외로 간단했다.. try catch문 사용 ㅠ 엥? 이정도는 해도 되나본데? 보면 안..
예외처리는 어디까지 해놓아야 하는가? 예를들어.. A라는 컨트롤러 클래스 안에 B라는 api 메서드가 있다. B라는 api는, C라는 서비스 메서드를 포함한다. C라는 서비스 메서드엔, Optional의 예외처리, orElseThrow()가 정의되어 있다. 여기서, 실행했을때, C에서 orElseThrow가 발생하면 당연히 C는 중단되고, B도 중단된다. 따라서 B에서도 C의 예외처리를 해주어야 한다. 라고 한다..
Optional 사용기.. Optional user = 어쩌고 해놓고, if (user.isPresent()) {} else{} ---> 이렇게 else로 예외처리 하는것은 좋지 않다. 아마 상위의 저 user클래스를 생성?호출? 하는 코드를 따라가보면, Repository에서 아예 쿼리문 반환형이 Optional 일 것. 그렇다면, orElseThrow () 를 이용하는게 더 효율적이다. 라고 한다!! ++ 반환값으로 절대 null을 할당하지 말자. null을 반환하는것을 방지하기 위해 Optional이 존재하는것인데, null을 할당해버리면 무용지물. Optional.empty()를 반환하래.
Transactional 이 뭘까 transactional 업무의, 업무적인 서비스 코드(메서드) 에 보통 적용하는 어노테이션. 하나의 일처리가 이루어 지는 일련의 과정을 트랜잭션 이라고 한다. 트랜잭션 연산은 독립적으로 이루어지며, 그 과정 중간에 다른 연산을 수행할 수 없고, 하나의 연산이라도 오류가 발생한다면 해당 트랙잭션은 취소되고 모두 원래대로 되돌아 가야 한다. 반드시 모든 연산이 성공해야만 트랜잭션이 성공했다고 볼 수 있다. -> 의도치 않은값이 저장,조회 되는 것을 막기 위함. 아래와 같은 예시를 막기 위함.