@NotNull이름 그대로 null 만 허용하지 않습니다.따라서, "" 이나 " " 은 허용하게 됩니다.그렇기 때문에 만약 "" (초기화된 String) )이나 " " (공백) 을 허용하지 않는다면 사용해서는 안됩니다.@NotEmptynull 과 "" 둘 다 허용하지 않습니다. (@NotNull 에서 "" 에 대한 validation 이 추가된 것)" " 은 허용하게 됩니다.@NotBlanknull 과 "" 과 " " 모두 허용하지 않습니다. (@NotEmpty 에서 " " 에 대한 validation 이 추가된 것)@NotNull, @NotEmpty, @NotBlank 중 @NotBlank가 가장 validation 강도가 높습니다.
질문 모음
Q) 메소드에 내에 구현된 JpaRepository.save(entity1); JpaRepository.save(entity2);가 실행되었을 때 entity2를 저장하면서 오류가 발생했는데 entity1은 저장되고 entity2는 저장되지 않고 rollback되었어요. 왜 그런건가요? A) 아래와 같은 현상을 이해하려면 Transaction과 Transaction의 전파에 대해 알 필요가 있습니다.Transaction은 데이터베이스가 처리하는 작업 단위를 뜻합니다. 좀 더 실용적으로 이야기한다면 SQL이 실행되고 종료하기까지의 작업 단위를 뜻합니다. Transaction의 기본 속성으로 작업 처리 중 예외과 발생하게되면 해당 작업을 Rollback시키게 됩니다. 그렇기 때문에 작업 수행 중 오류가 발생..
+ 질문JpaRepository 인터페이스를 통해 객체를 조회하기 위해 findCommentByUserIdAndScheduleId()라고 선언했는데 제대로 조회가 안 됩니다.+ 답변JpaRepository 인터페이스를 사용하여 쿼리를 자동생성하게 하려면 JPA가 요구하는 네이밍 전략에 잘 맞춰서 메소드 이름을 지어야 합니다.따라서 반드시 메소드 이름을, 특정 엔티티 하나를 조회하려면 findBy , 0개 이상의 리스트로 받으려면 findAllBy로 만들어야 합니다.이를 지키지 않으면 JPA는 쿼리를 자동 생성해주지 않습니다.네이밍 전략에 대해서는 스프링 부트에서 제공하는 공식 레퍼런스 문서를 꼭 읽어보시기 바랍니다.공식 레퍼런스 : JPA Query Methods
+ 질문조회 API를 생성하여 실행해보연 오류가 발생합니다.디버그 모드로 엔티티에 데이터가 정상 조회된 것을 확인하였습니다.다만 리턴하는 시점에 오류 발생합니다.Type definition error: [simple type, class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor]; nested exception is com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class org.hibernate.proxy.pojo.bytebuddy.ByteBuddyInterceptor and no properties discovered to create..