데이터에 빈값과 null값이 있다고 할 때, order by column asc : 빈 값 우선 , null 값 맨 뒤 order by column desc : null 값 우선, 빈 값 맨 뒤 와 같이 정렬이 되는데 빈 값과 null 값을 같은 위치에 정렬하고 싶어서 아래와 같이 코드를 짜서 구현을 했는데 List<Order> orderList= new ArrayList<>(); //... 생략 if(StringUtils.equals(SORT_DESC, direction)) { orderList.add(new Order(Direction.fromString(direction), column).nullsLast()); } else { orderList.add(new Order(Direction.fromString(direction), column).nullsFirst()); } // ... Sort.by(orderList); Sort 객체에는 NULLS_LAST나 NULLS_FIRST 세팅이 잘 되는데 jpa 쿼리로그에는 그냥 column에 대한 정렬밖에 없더라구요 좀 찾아보니, jpa 에서 nullHandling을 지원하지 않는다는 것도 같은데, https://github.com/spring-projects/spring-data-jpa/issues/1280 이런 경우 대체할 수 있는 방법이 뭐가 있을까요? ㅠ
안녕하세요. 수업 내용과는 관련 없지만 테스트 코드를 짤 때 벽을 만나서 물어볼 곳이 마땅하지 않아 이 곳에 질문을 하게 됐습니다. 문제 있다면 바로 삭제하도록 하겠습니다. 프로젝트를 진행하고 있는데 Spring Security를 적용해서 하고 있습니다. Service 쪽에서 Authentication 객체를 생성을 하고 JWT 를 만들어 줄 때 Authentication authentication = authenticationManagerBuilder.getObject() .authenticate(new UsernamePasswordAuthenticationToken(username, password)); 이렇게 생성을 하고 있습니다. 그래서 테스트코드를 짤 때 @Mock private AuthenticationManagerBuilder authenticationManagerBuilder; 이런 식으로 Mocking 해주고 Authentication authentication = mock(Authentication.class); given(authenticationManagerBuilder.getObject().authenticate(any())).willReturn(authentication); 이런 식으로 Stubbing 해주고 있는데요. java.lang.NullPointerException: Cannot invoke "java.util.concurrent.atomic.AtomicBoolean.get()" because "this.building" is null 이런 에러가 나타나고 있습니다. AuthenticationManagerBuilder 를 좀 살펴보니 타고타고 가다보면 AbstractSecurityBuilder 라는 것을 상속하고 있더군요. AbstractSecurityBuilder를 보면 private AtomicBoolean building = new AtomicBoolean(); 이런 필드가 있습니다. 에러에서 나온 building이 이걸 말하는 것 같습니다. 여기 나오는 building이 null 이어서 public final O getObject() { if (!this.building.get()) { throw new IllegalStateException("This object has not been built"); } return this.object; } 여기서 if 조건문을 탈 때 this.building이 null이기 때문에 NPE가 발생하는 것 같습니다. AuthenticationManagerBuilder를 Mocking을 해서 이런 결과가 생기는것인가 하는 의심이 들고 있는 상황입니다. 혹시 이런 경우에는 어떤 식으로 Mocking을 하고 Stubbing을 해줘야 테스트가 통과될 지 궁금합니다. 구글링해도 자료가 거의 없고 gpt도 계속 이상한 말을 반복해서..ㅠㅠ 어쩔 수 없이 여기에 질문 올려봅니다. 도움 주시면 감사하겠습니다..!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 정확히는, 페치조인과 일반 조인의 차이에서, 페치 조인은 연관된 엔티티를 함께 즉시 로딩하기 때문에 추가 select문이 발생하지 않고(한번에 퍼올리고) 일반 조인은 그렇지 않아서 후에 조회할 때에 다시 select문이 나간다고 설명해주셨습니다. 저는 이 부분이 일반 조인은 프록시형태로 조회해서 LAZY 때문에 그렇다고 이해하고 있었는데 프록시는 아니라고 설명해주셔서요. 그러면 일반 조인이 후에 다시 조회하게 되는 정확한 이유가 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의 ppt 내용 복사해서 작성했는데 오류가 납니다 스프링 초보인데 도와주세요
안녕하세요 완강하고 다시 복습중인데 MemberJpaRepository와 MemberRepositoryCustomImpl 의 차이가 뭔지 알 수 있을까요 ? MemberJpaRepository에 있는 코드를 MemberRepositoryCustom 및 MemberRepositoryCustomImpl 에 작성하면 안되는건가요 ? 따로 나눠져있는 이유가 궁금합니다 .. !
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. LocalDateTime. now(), 즉 현재 시간과 관련된 기능의 사용을 지양하자라고 말씀해주셨습니다! 이 뜻이 현재시간과 관련된 요구사항이 넘어왔을 때 해당 요구사항을 현재시간과 관련 없이 다른 방법으로 풀어보자 라는 의미일까요? 아니면 다른 기술적인 방법을 말씀하시는 걸까요~? 기술적인 방법이 있는 것이라면 어떤 방법이 있을지 궁금합니다!
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.10.1:testCompile (default-testCompile) on project studyolle: Compilation failure [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? [ERROR] [ERROR] -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException ./mvnw test 명령어를 입력하면 위에 오류가 나오면서 build failure라고 뜨네요.. 오류메시지처럼 자바 버전 문젠가 해서 제 맥북 환경변수쪽도 보니까 11로 잘 들어가 있는데 왜 그럴까요.
[ERROR] Failed to execute goal com.github.eirslett:frontend-maven-plugin:1.8.0:npm (npm install) on project studyolle: Failed to run task: 'npm install' failed. org.apache.commons.exec.ExecuteException: Process exited with an error: 236 (Exit value: 236) -> [Help 1] [ERROR] [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch. [ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException 해당 오류가 찍히는데 버전 문제일까요.?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 아니오 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 아니오 [질문 내용] 6:07에 나오는 것 처럼 SQL 로그 포맷을 설정하는 방법이 있나요? IntelliJ 에서 제공하는 soft-wrap과는 다른 것 같아서 알려주시면 감사하겠습니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 환경 spring boot : 3.0.6 java : 17 코드 https://github.com/pdh9311/jpashop 세번째 커밋에 에러가 발생합니다. org.hibernate.query.SemanticException: query specified join fetching, but the owner of the fetched association was not present in the select list [SqmSingularJoin(study.jpashop.domain.Order(o).member(m) : member)] 이런 에러가 발생합니다. 약간 클래스이름만 다르지 거의 강의 내용과 같게 한거 같은데 안되네요.. 예전에 할땐 된거 같은데. 무슨 문제일까요?
강의 약 7분부터 Q 파일은 반드시 gitignore하면 안된다고 하시면서, 뒤에서 뭐라뭐라 설명을 하시는데, 무슨 말인지 전혀 이해가 되질 않습니다. -> querydsl 라이브러리가 업데이트되어서 세부 사항이 바뀌면 도대체 어떤 문제가 일어나기에 git에서 관리하지 말라는 건가요??
강의 너무 잘듣고 사이드 프로젝트에 적용하고 있는데 cookie의 경우 restdocs로 어떻게 추출해야되는지 모르겠습니다.. 공식 문서에서는 requestCookies() 가 나와있는데 현재 저의 프로젝트에서는 적용이 안되네요. 저는 SpringBoot 2.6.12 버전이며 java 17, management의 경우 1.0.14 버전입니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 / 아니오 ) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. https://drive.google.com/file/d/1zqDliQSH54Yvau1DMmj31oC3BJKTLmiX/view?usp=sharing 강의를 한 번 다 보고 한 번 더 보면서 개인적인 프로젝트를 만들고 있는데 오류가 떠서요😥 혹시 어디가 잘못된 걸까요??ㅜㅜ
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의 내용 중에, '영속성 컨텍스트의 도움을 받을 수 없는 준영속 상태일 때, 프록시를 초기화하면 문제 발생' 이라는 내용이 있었습니다. 이를 보여주시는 예제로 나머지는 이해가 됐는데, 아래 하나가 이해가 되지 않았습니다. (39:43부근) 영속성 컨텍스트를 삭제하는 것도, 닫는 것도 아니라 'DB에 반영하는' em.clear() 메서드를 사용하면 프록시 초기화를 하지 못하는 이유가 궁금합니다. 저의 예상으로는 프록시가 영속성 컨텍스트 내에서 긴밀하게 연결되어 있어, 해당 프록시가 생성된 영속성 컨텍스트가 없으면(아예 없는 것 뿐만 아니라 딱 '그' 영속성 컨텍스트가 없으면) 더 이상 사용이 불가능 하다는 것인데, 맞는지도 궁금합니다.
안녕하세요 oracle db에서 서브쿼리 안에서 groupby를 했을떄 ORA-02287 sequence number not allowed here 오류가 나옵니다. 검색해보니 SEQUENCE를 사용할 수 없는 경우는 다음과 같다. SELECT 문장의 경우에서 1. WHERE 절 안에서 2. GROUP BY나 ORDER BY 절에서 3. DISTINCT 절에서 4. UNION 이나 INTERSECT 나 MINUS 와 함께 사용 할때 5. 서브 쿼리 안에서 라고 하는데 제 경우에는 이 group by를 하고싶으면 어떻게 할수있나요? 감사합니다. Integer sucessCount =0, JPQLQuery<Tuple> subQuery = JPAExpressions.select( log.name, log.content, new CaseBuilder() .when(log.statusCode.eq("0") .then(sucessCount+1) .otherwise(successCount), client.id ) .from(log) .leftJoin(client) .on(client.name.eq(log.name)) //이 group by가 문제 .groupBy(log.name, log.content, client.id); queryFactory.insert(stats) .columns( stats.name, stats.content, stats.successCount, stats.clientId ) .select(subQuery) .execute();
Spring Security 관련 강의에서 API와 인터페이스가 개념적으로 이해가 잘 가지가 않아서요 ㅠㅠ --★기존에 알고 있던 개념--------------------------------------------------------------------- API 의존성을 추가한다. 제공해주는 객체를 A a = new A 생성자로 생성한다. a.method(); 로 제공자 api에 접근해서 결과를 리턴받는다 --★Spring Security에서 api를 사용할때 개념--- 1. API 의존성을 추가한다 2. a.method(); 로 제공자 api를 실행시킨다. 3. api제공자의 프로그램은 내가 구현한 (인터페이스)를 실행시켜 관련된 정보를 얻고 4.그 정보를 조합하고 연산하여서 결과를 리턴한다. *3번의 내가 구현한 인터페이스란 api제공자가 필수적으로 구현하라고 준 인터페이스 인터페이스가 api제공자와 api소비자의 관계에서 어떤 역할을 하는 지 잘 모르겠어요..ㅠㅠ