분류 전체보기 949

[Java Error] class java.lang.Integer cannot be cast to class java.lang.Long 해결 방법

class java.lang.Integer cannot be cast to class java.lang.Long 에러 원인 java.lang.Integer 타입을 java.lang.Long 타입으로 캐스팅할 수 없다는 에러 Integer와 Long은 서로 다른 클래스이기 때문에 직접적인 캐스팅은 불가능 나의 경우 직접 캐스팅 할 수 없음에도 캐스팅 하려고 해서 에러 발생 if((Long) obj.get("input")) == longValue) { ... } 해결 방법 JSON 객체에서 가져온 "input" 값이 Number 타입으로 캐스팅 후, 이를 long 타입으로 변환하여 사용 long input = ((Number) obj.get("input")).longValue(); if(input == lo..

[Java] 개선된 Switch문 (Switch Expression)

Switch Expression Java 12 버전에 preview에 소개된 Switch Expression은 Java 14 버전에서 표준화 됨 기존의 Switch문과 비교하여 몇 가지 특징이 있음 화살표(->) 연산자 int day = 1; String dayOfWeek = switch (day) { case 1 -> "Monday"; case 2 -> "Tuesday"; case 3 -> "Wednesday"; case 4 -> "Thursday"; case 5 -> "Friday"; default -> "Unknown"; }; System.out.println(dayOfWeek); // 출력: "Monday" 각 case 문의 실행 코드 뒤에 화살표(->) 연산자를 사용하여 실행할 블록을 지정함. ..

[Java] Stream에서 index 사용하기

Stream에서 index 사용하기 Stream은 index를 알 수 없지만 AtomicInteger를 사용하여 index 생성하여 사용 가능함 AtomicInteger는 원자적인 연산을 제공하는 클래스임 여러 스레드에서 동시에 접근하는 경우 데이터의 일관성이 보장됨 연산을 통해 증가, 감소, 비교 및 교환 연산 가능 주요 메서드 get() 객체의 현재 값을 반환 set(int newValue) 객체의 값을 주어진 newValue로 설정 getAndSet(int newValue) 객체의 현재 값을 반환하고, 동시에 값을 주어진 newValue로 설정 incrementAndGet() 객체의 값을 1 증가시킨 후, 그 증가된 값을 반환 decrementAndGet() 객체의 값을 1 감소시킨 후, 그 감소된..

[Java] LocalDate 해당 월의 마지막 날짜 구하기

LocalDate 해당 월의 마지막 날짜 구하기 lengthOfMonth()withDayOfMonth() 메서드와 lengthOfMonth() 메서드를 사용한 첫 번째 방법 //기준일자 LocalDate date = LocalDate.parse("2023-05-16"); //해당 월의 첫째 날 LocalDate firstDate = date.withDayOfMonth(1); // 2023-05-01 //해당 월의 마지막 날 LocalDate lastDate = date.withDayOfMonth(date.lengthOfMonth()); // 2023-05-31 YearMonth 타입을 활용한 두 번째 방법 //기준일자 LocalDate date = LocalDate.parse("2023-05-16"); ..

[JPA] jpql limit 사용하기

jpql limit 사용하기 jpql에는 limit절을 사용할 수 없음 이를 대체하기 위한 방안들을 소개해보고자 함 nativeQuery 사용하기 nativeQuery=true 추가하여 네이티브 쿼리 사용하기 @Query(value = "SELECT * FROM employee ORDER BY salary DESC LIMIT 1", nativeQuery = true) Employee findFirstEmployee(); first 키워드 사용 첫 번째 결과를 가져오는 방법 @Query("SELECT e FROM Employee e ORDER BY e.salary DESC") List findFirstEmployee(); top 키워드 사용 Order by 한 목록의 상위 3개의 결과 가져오는 방법 Lis..

프로그래밍/JPA 2023.05.17

[Spring Boot] @DeletedMapping에서 @RequestBody 사용?

@DeletedMapping에서 @RequestBody 사용이 안되는 이유와 대체 방안 @DeletedMapping은 HTTP DELETE 요청을 처리하는데 사용함 DELETE 요청은 요청 바디를 가지지 않는 것이 일반적임 그렇기에 @RequestBody 사용하여 요청 바디를 수신하는 것이 지원되지 않음 대체 방법 👇 @DeletedMapping에서 데이터 전달이 필요한 경우 @RequestParam을 사용하거나 @RequestBody를 전달받아야 하는 경우라면 @DeletedMapping 대신 @PutMapping을 사용하기