본문 바로가기

백엔드287

[Spring] JPA repository 에서 count 사용하기 JPA에서 테이블 조회 시 Count 값을 가져오려면 Repository에 CountBy() 메소드를 추가해주면 되는데 만약 조회조건이 있다면 CountBy컬럼명(Param param) 과 같이 사용해주면 된다 마지막으로 count 조회 시 Long 타입으로 리턴하기 때문에 반드시 Return 데이터 타입을 Long으로 잡아줘야 한다 2022. 12. 15.
[spring] Failed to convert value of type 'java.lang.String' to required type 'java.time.LocalDateTime' 날짜 데이터 조회시 String 으로 데이터를 받아오고 있었고 사용해야 하는 값은 LocalDate 였다. String 으로 받아온 후 DateFormatter을 하지 않고 값을 api 에서 받아올때부터 LocalDate 로 사용했다. @RequestParam(value = "startDate", required = false) @DateTimeFormat(iso = DateTimeFormat.ISO.DATE, pattern="yyyy-MM-dd") LocalDate startDate 2022. 12. 12.
[Spring] JPA ERROR :: Unable to locate Attribute with the the given name on this ManagedType JPA ERROR :: Unable to locate Attribute with the the given name on this ManagedType 헤당 오류의 원인은 오타이다. DB 에 정의한 내용과 Entity 에서 선언한 컬럼명이 달라서 생기는 오류이다. 2022. 12. 9.
[spring] @AuthenticationPrincipal 권한 비교 controller public MemberDto findMember(@AuthenticationPrincipal U principal , @Parameter(name = "page", in = ParameterIn.QUERY) Pageable pageable ) { return MemberService.findMember(principal, pageable); } service @Override public MemberDto findMember(U principal, Pageable pageable) { memberService.findMember(pageable); // 권한 확인 if(principal.getAuthorities().toString().equals("[SUPER_ADMIN]")){ .. 2022. 12. 8.
[JPA] object references an unsaved transient instance - save the transient instance before flushing JPA 연관관계 사용 중 아래와 같은 에러가 나왔다. object references an unsaved transient instance - save the transient instance before flushing 오류 이유 해당 오류가 생기는 이유는 FK 로 사용되는 컬럼값이 없는 상태에서 데이터를 넣으려다보니 생기는 에러인 것이다. 예를 들어 아래와 같은 내용이 있을 때 Member (id, name) Address (id, address1, member_id) Member에 데이터를 넣지 않고 Address 에 데이터를 넣으려고 하면 member_id 값이 없어서 에러가 발생하는 것이다. 해결 방법 해결 방법으로는 연관관계를 설정할 때 cascade 옵션을 설정해준다. cascade = Ca.. 2022. 12. 2.
[spring jpa] repository 에서 가장 상위에 있는 id값 가져오기 jpa 에서 id를 역순 정렬해 가장 상위에 있는 id 깂을 가져오고자 한다. Top / First 어느것을 사용하던 결과는 동일하다. public interface MemberEntityRepository extends JpaRepository { MemberEntity findFirstByOrderByIdDesc(); MemberEntity findTop1ByOrderByIdDesc(); } 2022. 11. 29.