inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

176만명의 커뮤니티!! 함께 토론해봐요.

Spring JPA Order by nullsHandling 지원 여부

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

데이터에 빈값과 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 이런 경우 대체할 수 있는 방법이 뭐가 있을까요? ㅠ

  • java
  • spring
  • spring-boot
  • jpa
구럴수도있겠땅 댓글 1 좋아요 0 조회수 1516

인증 관련 테스트 할 때 질문드립니다.

미해결

Practical Testing: 실용적인 테스트 가이드

안녕하세요. 수업 내용과는 관련 없지만 테스트 코드를 짤 때 벽을 만나서 물어볼 곳이 마땅하지 않아 이 곳에 질문을 하게 됐습니다. 문제 있다면 바로 삭제하도록 하겠습니다. 프로젝트를 진행하고 있는데 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도 계속 이상한 말을 반복해서..ㅠㅠ 어쩔 수 없이 여기에 질문 올려봅니다. 도움 주시면 감사하겠습니다..!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
비가싫어요 댓글 2 좋아요 0 조회수 1309

일반 조인에서 연관된 엔티티를 조회하지 않는 과정이 궁금합니다.

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 정확히는, 페치조인과 일반 조인의 차이에서, 페치 조인은 연관된 엔티티를 함께 즉시 로딩하기 때문에 추가 select문이 발생하지 않고(한번에 퍼올리고) 일반 조인은 그렇지 않아서 후에 조회할 때에 다시 select문이 나간다고 설명해주셨습니다. 저는 이 부분이 일반 조인은 프록시형태로 조회해서 LAZY 때문에 그렇다고 이해하고 있었는데 프록시는 아니라고 설명해주셔서요. 그러면 일반 조인이 후에 다시 조회하게 되는 정확한 이유가 궁금합니다.

  • java
  • jpa
Dompoo 댓글 1 좋아요 1 조회수 465

persistence.xml 에서 URI is not registed

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 강의 ppt 내용 복사해서 작성했는데 오류가 납니다 스프링 초보인데 도와주세요

  • java
  • jpa
코딩의 코자도 모르는 댓글 1 좋아요 0 조회수 601

persistence.xml

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

persistence.xml 작성 후 교수님과 같은 창이 뜨지 않습니다. 찾아본 방법으로 project structure 에서 추가하려해도 JPA가 뜨지않습니다. 맨 마지막에 구글 드라이브 주소를 추가하였습니다 --프로젝트 생성 사진 <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>jpabasic</groupId> <artifactId>ex1-hello-jpa</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.0</version> </dependency> <!-- JPA 하이버네이트 --> <!-- 인터페이스--> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>5.3.10.Final</version> </dependency> <!-- H2 데이터베이스 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.200</version> </dependency> </dependencies> </project> <?xml version="1.0" encoding="UTF-8"?> <persistence version="2.2" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_2.xsd"> <persistence-unit name="hello"> <properties> <!-- 필수 속성 --> <property name="javax.persistence.jdbc.driver" value="org.h2.Driver"/> <property name="javax.persistence.jdbc.user" value="sa"/> <property name="javax.persistence.jdbc.password" value=""/> <property name="javax.persistence.jdbc.url" value="jdbc:h2:tcp://localhost/~/test"/> <property name="hibernate.dialect" value="org.hibernate.dialect.H2Dialect"/> <!-- 옵션 --> <property name="hibernate.show_sql" value="true"/> <property name="hibernate.format_sql" value="true"/> <property name="hibernate.use_sql_comments" value="true"/> <property name="hibernate.hbm2ddl.auto" value="create" /> </properties> </persistence-unit> </persistence> https://drive.google.com/file/d/1VSj9otuwnM8LDSYNYHaoXz04VmY15tLn/view?usp=share_link ** pom.xml파일 h2 버전은 1.4.200으로 바꾸었습니다.

  • java
  • jpa
brizz 댓글 1 좋아요 1 조회수 721

MemberJpaRepository와 MemberRepositoryCustomImpl 의 차이

미해결

실전! Querydsl

안녕하세요 완강하고 다시 복습중인데 MemberJpaRepository와 MemberRepositoryCustomImpl 의 차이가 뭔지 알 수 있을까요 ? MemberJpaRepository에 있는 코드를 MemberRepositoryCustom 및 MemberRepositoryCustomImpl 에 작성하면 안되는건가요 ? 따로 나눠져있는 이유가 궁금합니다 .. !

  • java
  • jpa
김김 댓글 2 좋아요 0 조회수 445

섹션 7에서 완벽하게 제어하기 파트에서 질문이 있습니다!

미해결

Practical Testing: 실용적인 테스트 가이드

학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. LocalDateTime. now(), 즉 현재 시간과 관련된 기능의 사용을 지양하자라고 말씀해주셨습니다! 이 뜻이 현재시간과 관련된 요구사항이 넘어왔을 때 해당 요구사항을 현재시간과 관련 없이 다른 방법으로 풀어보자 라는 의미일까요? 아니면 다른 기술적인 방법을 말씀하시는 걸까요~? 기술적인 방법이 있는 것이라면 어떤 방법이 있을지 궁금합니다!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
khmin3011 댓글 2 좋아요 1 조회수 445

강사님! 프론트엔드 라이브러리 설정 부분에서 오류가 납니다..

미해결

스프링과 JPA 기반 웹 애플리케이션 개발

[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로 잘 들어가 있는데 왜 그럴까요.

  • java
  • spring
  • spring-boot
  • jpa
  • thymeleaf
김한석 댓글 1 좋아요 0 조회수 454

기본 타입, 객체 타입

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

C언어에서 배운 것과 비슷한 것 같은데 비슷하게 이해하면 될까요? 기본 타입의 복사는 call by value 객체 타입의 참조 전달은 call by reference

  • java
  • jpa
hyun 댓글 1 좋아요 0 조회수 389

프로젝트 실행하기 강의에서 compile 클릭시

미해결

스프링과 JPA 기반 웹 애플리케이션 개발

[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 해당 오류가 찍히는데 버전 문제일까요.?

  • java
  • spring
  • spring-boot
  • jpa
  • thymeleaf
김한석 댓글 1 좋아요 0 조회수 766

SQL Query Log Format

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 아니오 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 아니오 [질문 내용] 6:07에 나오는 것 처럼 SQL 로그 포맷을 설정하는 방법이 있나요? IntelliJ 에서 제공하는 soft-wrap과는 다른 것 같아서 알려주시면 감사하겠습니다!

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
Jacob Park 댓글 1 좋아요 0 조회수 521

ordersV4에서 에러가 발생하는데 무슨 문제인지 잘 모르겠습니다. (아직 정확한 원인을 모르겠습니다. 알려주세요~~)

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

[질문 템플릿] 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)] 이런 에러가 발생합니다. 약간 클래스이름만 다르지 거의 강의 내용과 같게 한거 같은데 안되네요.. 예전에 할땐 된거 같은데. 무슨 문제일까요?

  • java
  • spring
  • spring-boot
  • jpa
ightprove 댓글 2 좋아요 0 조회수 1867

왜 Q파일은 GIT에서 관리하면 안 되는지 이해가 안돼요...

미해결

실전! Querydsl

강의 약 7분부터 Q 파일은 반드시 gitignore하면 안된다고 하시면서, 뒤에서 뭐라뭐라 설명을 하시는데, 무슨 말인지 전혀 이해가 되질 않습니다. -> querydsl 라이브러리가 업데이트되어서 세부 사항이 바뀌면 도대체 어떤 문제가 일어나기에 git에서 관리하지 말라는 건가요??

  • java
  • jpa
김진영 댓글 1 좋아요 0 조회수 1026

프로젝트 생성 초기 문제가 생겼습니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

자바 버전 설정시 다른 사람들과는 다르게 oracle 버전이 없고 직접 다운받으려했는데 설치가 안됩니다. amazon corretto 11.0.19로 진행해도 되나요?

  • java
  • jpa
댓글 1 좋아요 0 조회수 317

Cookie의 경우 RestDocs로 어떻게 해야할까요?

미해결

Practical Testing: 실용적인 테스트 가이드

강의 너무 잘듣고 사이드 프로젝트에 적용하고 있는데 cookie의 경우 restdocs로 어떻게 추출해야되는지 모르겠습니다.. 공식 문서에서는 requestCookies() 가 나와있는데 현재 저의 프로젝트에서는 적용이 안되네요. 저는 SpringBoot 2.6.12 버전이며 java 17, management의 경우 1.0.14 버전입니다.

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
댓글 2 좋아요 1 조회수 1106

테이블 오류

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 / 아니오 ) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. https://drive.google.com/file/d/1zqDliQSH54Yvau1DMmj31oC3BJKTLmiX/view?usp=sharing 강의를 한 번 다 보고 한 번 더 보면서 개인적인 프로젝트를 만들고 있는데 오류가 떠서요😥 혹시 어디가 잘못된 걸까요??ㅜㅜ

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
새싹 댓글 1 좋아요 0 조회수 359

준영속 상태일 때, 프록시를 초기화 못하는 이유

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의 내용 중에, '영속성 컨텍스트의 도움을 받을 수 없는 준영속 상태일 때, 프록시를 초기화하면 문제 발생' 이라는 내용이 있었습니다. 이를 보여주시는 예제로 나머지는 이해가 됐는데, 아래 하나가 이해가 되지 않았습니다. (39:43부근) 영속성 컨텍스트를 삭제하는 것도, 닫는 것도 아니라 'DB에 반영하는' em.clear() 메서드를 사용하면 프록시 초기화를 하지 못하는 이유가 궁금합니다. 저의 예상으로는 프록시가 영속성 컨텍스트 내에서 긴밀하게 연결되어 있어, 해당 프록시가 생성된 영속성 컨텍스트가 없으면(아예 없는 것 뿐만 아니라 딱 '그' 영속성 컨텍스트가 없으면) 더 이상 사용이 불가능 하다는 것인데, 맞는지도 궁금합니다.

  • java
  • jpa
Dompoo 댓글 2 좋아요 0 조회수 551

서브쿼리 안에 groupby시 sequence number not allowed here

미해결

실전! Querydsl

안녕하세요 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();

  • java
  • jpa
댓글 1 좋아요 0 조회수 417

강의 5:00~

해결됨

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

아직 기본기가 완벽하지 않아서 헷갈리는 부분이 있습니다. 선생님께서 order.getOrderItems()할때 엔티티니까 조회가 안된다. 라고 하셨습니다. 이해가 안되서 생각해봤는데 Entity OrderItem이 지연로딩에 해당되서 stream으로 값을 불려와야한다 라고 이해하면 될까요?? public OrderDto(Order order) { orderId = order.getId(); name = order.getMember().getName(); orderDate = order.getOrderDate(); orderStatus = order.getStatus(); address = order.getDelivery().getAddress(); orderItems = order.getOrderItems().stream() .map(orderItem -> new OrderItemDto(orderItem)) .collect(toList()); }

  • java
  • spring
  • spring-boot
  • jpa
박해빈 댓글 1 좋아요 0 조회수 600

선생님 api와 인터페이스가 잘 이해가 가지 않는데요..

미해결

스프링 프레임워크는 내 손에 [스프2탄]

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소비자의 관계에서 어떤 역할을 하는 지 잘 모르겠어요..ㅠㅠ

  • spring
  • jquery
  • mvc
  • jpa
  • spring-security
열심인 참새 댓글 2 좋아요 1 조회수 463

인기 태그

인프런 TOP Writers

주간 인기글