inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

generated 폴더와 Q class import에 관한...

미해결

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

[질문 내용] 여기에 질문 내용을 남겨주세요. 1. Tasks - other에 compileQuerydsl이 없어서 compileJava를 눌러서 했는데 괜찮은지 ?? 2.강사님과 다르게 build /generated 이렇게 생성되어도 문제가 없는지? 저런식으로 Q파일들이 생성되었는데 import가 안되고 사용이 안되는 이유 알려주시면 감사하겠습니다.

  • java
  • spring
  • spring-boot
  • jpa
박환영 댓글 1 좋아요 0 조회수 1067

java.lang.NullPointerException: null

해결됨

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

책 이름 등록하고 사용자가 대여하는 기능을 하고있는데 책 대출 기능에서 사용자이름과 책이름을 입력하고 저장하게되면 내부 서버오류 500 뜨면서 java.lang.NullPointerException: null 이라고 나옵니다. 구글링을 해봤는데 해결이 안되서 질문드립니다.

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
Joohan Park 댓글 1 좋아요 1 조회수 737

다대다 양방향은 어떻게 사용해야하나요 ?

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 수업에 다대다 단방향만나와서 양방향하는 방법을 알고 싶습니다. 쉽게 말해서 한 학생이 여러과목을 들을 수 있는데 과목의 입장에서는 다양한 학생들이 있으니 그렇게 양방향으로 보고 싶습니다.

  • java
  • jpa
김슬기 댓글 1 좋아요 0 조회수 434

실무에서 지연로딩이 사용되는 경우

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (아니요) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의를 보고 엔티티를 설계하여 프로젝트를 진행하고 있습니다. 강의에서 말씀해주신대로 모든 FetchType을 LAZY로 하여 개발하고 있는데 문득 지연로딩이 실제로 어떤 상황에 필요한지가 궁금해졌습니다. 강의에서 말씀해주신대로 연관관계 매핑 데이터를 즉시 가져오지 않고 필요할 때 사용할 수 있도록 할 때 지연로딩을 사용한다는 것은 이해했습니다. 실무에서 어떤 상황에 적용되는지 찾아보니, 여러 이미지들을 스크롤하면서 이미지를 실제로 화면에서 보게 될 때 사용하면 효율적이라는 포스팅을 보았습니다. 그런데 또 실무에서는 OSIV를 off한다고 보았습니다. OSIV가 off라면 영속성 컨텍스트가 Service, Repository에서만 살아있게 되어 어쨌든 Service 단에서 모두 처리해야 하는데 그렇다면 지연로딩이나 즉시로딩이나 별 차이가 없는 것 아닌가요?? 혹시 제가 잘못 알고 있는 것이 있는지, 어떤 상황에서 지연로딩을 사용하는 것이 좋은지 궁금합니다. 감사합니다:)

  • java
  • spring
  • spring-boot
  • jpa
mjmjz9 댓글 1 좋아요 0 조회수 445

섹션 2의 단위테스트 세분화하기에서요 !

미해결

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

public void add(Beverage beverage, int count) { if (count <= 0){ throw new IllegalArgumentException("음료는 1잔 이상 주문하실 수 있습니다."); } for (int i = 0; i < count; i ++) { beverages.add(beverage); } } // 위 코드랑 아래 테스트에 대해서 이해가 안되서요 ! @Test void add() { CafeKiosk cafeKiosk = new CafeKiosk(); Beverage latte = new Latte(); cafeKiosk.add(latte); int expectedSize = 1; int actuallySize = cafeKiosk.getBeverages().size(); String expectedName = "라떼"; String actuallyName = cafeKiosk.getBeverages().get(0).getName(); Assertions.assertThat(actuallySize).isEqualTo(expectedSize); Assertions.assertThat(actuallyName).isEqualTo(expectedName); } @Test void addSeveralBeverages() { CafeKiosk cafeKiosk = new CafeKiosk(); Beverage latte = new Latte(); cafeKiosk.add(latte, 2); Assertions.assertThat(cafeKiosk.getBeverages().get(0)).isEqualTo(latte); Assertions.assertThat(cafeKiosk.getBeverages().get(1)).isEqualTo(latte); } 저렇게 add()에 count를 넣어버리면 add()테스트에서 cafeKiosk.add(latte, 1)으로 수정하던지 해야 에러가 안나는 거 아닌가요? 강의에서는 그냥 진행하셔서 여쭤봅니다!

  • spring
  • tdd
  • jpa
  • mockito
  • 소프트웨어-테스트
  • junit5
무자비한 낭만주먹 댓글 1 좋아요 0 조회수 566

Enum 리스트를 위한 엔티티를 만드는 방식이 궁금합니다.

미해결

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

엔티티에 Enum 클래스의 리스트를 포함시키려고 합니다. 예를 들어서 Person 이라는 엔티티가 Hobby 라는 Enum 클래스의 리스트를 가질 때, PersonHobby 라는 엔티티를 만들고 그 안에 Hobby 를 적용시켜서 두 엔티티 사이의 연관관계를 만들려고 합니다. 이 때, Person 엔티티와 PersonHobby 엔티티는 일대다 관계로 만드는 게 맞을까요? 다대다 관계로 만드는 게 맞을까요? 하나의 동일한 취미를 여러 사람이 가질 수 있으니 다대다 관계일 수도 있다고 생각되는데, 이전에 값 타입 컬렉션 영상에서는 이러한 상황에서 일대다를 권장한다고 했기 때문에 헷갈려서 질문을 남깁니다.

  • java
  • jpa
clap-0 댓글 1 좋아요 0 조회수 300

현시점 QueryDSL에 대한 의견이 궁금합니다.

미해결

실전! Querydsl

안녕하세요 김영한님! 저는 2년차 백엔드 개발자 주니어입니다. 다름 아니라, QueryDSL이 2021년 5.0.0 버전 이후 새로 릴리즈되고 있지 않습니다. 그래서 만약 새로운 서버에 대한 기술 스택을 정할 때, QueryDSL에 대한 영한님의 의견이 어떨지 궁금하여 글을 작성하게 되었습니다. ("영한님 의견대로 도입한다 vs 안 한다" 같은 상황이 아니라 단순히 의견이 궁금한 겁니다!) 현재 거론되고 있는 대체 라이브러리는 대략 다음과 같은 것 같습니다. jooq kotlin-jdsl (코틀린 한정) MyBatis 만약 영한님이라면 현시점에서 QueryDSL을 선택하실 것 같나요? 다른 기준이 필요하다면 무엇일까요? 혹은 요새 관심있는 라이브러리가 있으실까요? 의견이 궁금합니다! 감사합니다.

  • java
  • jpa
  • querydsl
profoundsea25 댓글 1 좋아요 3 조회수 3587

fetchResults(), fetchCount() deprecated

해결됨

실전! Querydsl

안녕하세요 countQuery 최적화까지 잘 들었는데요. queryDsl 특정버전 이상에서는 fetchResults(), fetchCount() 가 deprecated 되어었네요. 그러면 앞으로 queryDsl 로 페이징을 처리할 때는. count(), content() 쿼리 동시에 X : searchPageSimple() 함수에서 사용한 fetchResult() 는 사용X 이므로. 쿼리 최적화 방법도 X : 리턴값에 fetchCount() 를 사용해야 하므로. count(), content() 쿼리 별도로 날리고 ( https://www.inflearn.com/questions/806452 참고) count() 쿼리시에는 sql의 count() 함수와 fetchOne() 을 사용한다. 정리하면 3번의 방법을 사용하되, 이번 강의에서 말씀해주신 특정 조건에만 날아가는 쿼리도 사용은 못하는 것(fetchCount() Depcreaed 이므로) 맞을까요? 감사합니다.

  • java
  • jpa
highjune 댓글 2 좋아요 0 조회수 2199

클라이언트에서 토큰을 서버로 줄 때

해결됨

생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현

클라이언트(안드로이드)가 카카오에서 발급받은 엑세스토큰을 백으로 주는 상황일 때 강의영상 토큰 발급 구현 (1), (2)는 작성하지 않아도 되는걸까요??

  • spring-boot
  • jpa
  • web-api
댓글 1 좋아요 0 조회수 319

constructor 방식 Enum List argument type mismatch 질문

미해결

실전! Querydsl

안녕하세요 영한님! 저는 강의 후에 개인 프로젝트를 진행중인데요 @Column(nullable = false) @ElementCollection private List<Tech> techs; Post class에 해당 Enum type List가 있습니다. package project.como.domain.post.model; import lombok.AllArgsConstructor; import lombok.Getter; @Getter @AllArgsConstructor public enum Tech { Java("Java"), Spring("Spring"); private String stack; } 그런데 Projections.constructor 방식으로 Dto를 만들때 에러가 발생합니다. List<PostAbstractResponseDto> content = queryFactory .select(Projections.constructor(PostAbstractResponseDto.class, post.title, post.category, post.state, post.techs )) .from(post) .where(stateEq(condition.getState()), categoryEq(condition.getCategory()), techsContains(condition.getTechs())) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .fetch(); post.techs와 조건식을 제외하고 조회할 때는 정상적으로 잘 동작하지만, post.techs를 넣는 경우에 argument type mismatch 에러가 발생하네요. 무슨 문제인지 궁금합니다. 감사합니다 :)

  • java
  • jpa
gksrhs97 댓글 2 좋아요 0 조회수 987

연관관계 편의 메소드 관련 , select시 return이 2개 나올때 질문

미해결

실전! Querydsl

jpa로 토이프로젝트를 하고 있는데 아래와 같이 여정 정보를 저장하는 코드 입니다. 저장할 Journey를 Entity로 변경 후 setTravel로 매핑합니다. 그 후 전체 Travel 데이터를 return하는데 return되는 값에 저장했던 Journey가 2개 들어 있습니다. 왜그런지 이유를 잘 모르겠습니다. ㅠ.ㅠ @Transactional public List<TravelDto.Response> addJourney(Traveler traveler, Long travelId, JourneyDto.Request newJourney) throws IOException { Travel travel = travelRepository.findTravelByTravelerIdAndTravelId(traveler.getId(), travelId); Journey newJourneyEntity = newJourney.toEntity(); newJourneyEntity.setTravel(travel); return getTravel(traveler); } public List<TravelDto.Response> getTravel(Traveler traveler) { return travelRepository.findByTravelerIdOrderByOrderKeyAsc(traveler.getId()) .stream() .map(TravelDto.Response::new) .collect(Collectors.toList()); } public void setTravel(Travel travel) { if (this.travel != null) { this.travel.getJourneys().remove(this); } this.travel = travel; travel.getJourneys().add(this); }

  • java
  • jpa
  • 편의메소드
모코코 댓글 1 좋아요 0 조회수 314

java.lang.IllegalStateException: Failed to load ApplicationContext

미해결

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

junit4로 작성했고 처음에 테스트 케이스가 없다고 해서 설정에서 run using tests를 intllij로 바꿔서 했는데 java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:98 ) at org.springframework.test.context.support .DefaultTestContext.getApplicationContext( DefaultTestContext.java:124 ) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary( ServletTestExecutionListener.java:190 ) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance( ServletTestExecutionListener.java:132 ) at org.springframework.test.context.TestContextManager.prepareTestInstance( TestContextManager.java:248 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest( SpringJUnit4ClassRunner.java:227 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall( SpringJUnit4ClassRunner.java:289 ) at org.junit.internal.runners.model.ReflectiveCallable.run ( ReflectiveCallable.java:12 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock( SpringJUnit4ClassRunner.java:291 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:246 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild( SpringJUnit4ClassRunner.java:97 ) at org.junit.runners.ParentRunner$4.run( ParentRunner.java:331 ) at org.junit.runners.ParentRunner$1.schedule( ParentRunner.java:79 ) at org.junit.runners.ParentRunner.runChildren( ParentRunner.java:329 ) at org.junit.runners.ParentRunner.access$100( ParentRunner.java:66 ) at org.junit.runners.ParentRunner$2.evaluate( ParentRunner.java:293 ) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate( RunBeforeTestClassCallbacks.java:61 ) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate( RunAfterTestClassCallbacks.java:70 ) at org.junit.runners.ParentRunner$3.evaluate( ParentRunner.java:306 ) at org.junit.runners.ParentRunner.run ( ParentRunner.java:413 ) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run ( SpringJUnit4ClassRunner.java:190 ) at org.junit.runner.JUnitCore.run ( JUnitCore.java:137 ) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs( JUnit4IdeaTestRunner.java:69 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute( IdeaTestRunner.java:38 ) at com.intellij.rt.execution.junit.TestsRepeater.repeat( TestsRepeater.java:11 ) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs( IdeaTestRunner.java:35 ) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart( JUnitStarter.java:232 ) at com.intellij.rt.junit.JUnitStarter.main( JUnitStarter.java:55 ) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1804 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean( AbstractAutowireCapableBeanFactory.java:620 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean( AbstractAutowireCapableBeanFactory.java:542 ) at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0( AbstractBeanFactory.java:335 ) at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton( DefaultSingletonBeanRegistry.java:234 ) at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean( AbstractBeanFactory.java:333 ) at org.springframework.beans.factory.support .AbstractBeanFactory.getBean( AbstractBeanFactory.java:208 ) at org.springframework.context.support .AbstractApplicationContext.getBean( AbstractApplicationContext.java:1157 ) at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization( AbstractApplicationContext.java:911 ) at org.springframework.context.support .AbstractApplicationContext.refresh( AbstractApplicationContext.java:583 ) at org.springframework.boot.SpringApplication.refresh( SpringApplication.java:731 ) at org.springframework.boot.SpringApplication.refreshContext( SpringApplication.java:408 ) at org.springframework.boot.SpringApplication.run ( SpringApplication.java:307 ) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext( SpringBootContextLoader.java:136 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal( DefaultCacheAwareContextLoaderDelegate.java:141 ) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext( DefaultCacheAwareContextLoaderDelegate.java:90 ) ... 27 more Caused by: org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService( AbstractServiceRegistryImpl.java:284 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService( AbstractServiceRegistryImpl.java:246 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService( AbstractServiceRegistryImpl.java:223 ) at org.hibernate.id .factory.internal.DefaultIdentifierGeneratorFactory.injectServices( DefaultIdentifierGeneratorFactory.java:175 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies( AbstractServiceRegistryImpl.java:295 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService( AbstractServiceRegistryImpl.java:252 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService( AbstractServiceRegistryImpl.java:223 ) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>( InFlightMetadataCollectorImpl.java:173 ) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete( MetadataBuildingProcess.java:127 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata( EntityManagerFactoryBuilderImpl.java:1460 ) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build ( EntityManagerFactoryBuilderImpl.java:1494 ) at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory( SpringHibernateJpaPersistenceProvider.java:58 ) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory( LocalContainerEntityManagerFactoryBean.java:365 ) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory( AbstractEntityManagerFactoryBean.java:409 ) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet( AbstractEntityManagerFactoryBean.java:396 ) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet( LocalContainerEntityManagerFactoryBean.java:341 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods( AbstractAutowireCapableBeanFactory.java:1863 ) at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean( AbstractAutowireCapableBeanFactory.java:1800 ) ... 42 more Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect( DialectFactoryImpl.java:100 ) at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect( DialectFactoryImpl.java:54 ) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService( JdbcEnvironmentInitiator.java:138 ) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService( JdbcEnvironmentInitiator.java:35 ) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService( StandardServiceRegistryImpl.java:101 ) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService( AbstractServiceRegistryImpl.java:272 ) ... 59 more 이렇게 오류가 뜨네요 2시간째 이것만 붙들고 있는데 뭐가 문제인걸까요? ㅠㅠ

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
으흠 댓글 1 좋아요 0 조회수 408

package 네임에서 에러가 발생했습니다

미해결

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

[질문 내용] 위 방식으로 프로젝트 생성 후에 package 네임에서 에러가 발생하면서 main 메서드 실행이 안되는데 어떻게 해결하는 건가요? ㅠㅠ 구글에 검색해봐도 모르겠어서 질문합니다

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

JPAQueryFactory 의 @Bean 등록

미해결

실전! Querydsl

 안녕하세요, 위 사진처럼 JPAQueryFactory를 별도로 생성해주거나, 아니면 JPAQueryFactory 를 별도로 @Bean 등록해서 생성자 파라미터로 주입받거나 두가지 방식으로 아무거나 해도 되잖아요? 그런데 문득 궁금한데, 습관처럼 사용하던 EntityManager 같은 것들은 Spring이 자동으로 @Bean 으로 등록해서 관리하고 있는 거죠? 그렇다면 JPAQueryFactory는 왜 별도로 스프링이 @Bean 으로 자동 등록해두지 않은 거죠? 감사합니다.

  • java
  • jpa
highjune 댓글 1 좋아요 1 조회수 1078

프록시 객체의 재정의된 equals 메서드를 호출하게 되면 초기화되나요?

미해결

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

@Override public boolean equals(Object o) { if (this == o) return true; if (!(o instanceof Post post)) return false; return id.equals(post.getId()); } 위에 처럼 equals 메서드를 재정의했고 id값만 사용해 객체를 비교했습니다. 예상한걸로는 id값만 사용했기에 객체가 초기화 되지 않는걸 예상했고 하지만 실제로 동작에서는 초기화가 되는것을 확인했습니다. @Override public boolean equals(Object o) { return true; } 그리고 테스트 하기위해 위에 처럼 필드를 사용하지 않게 재정의를 했고 하지만 역시 equals를 사용하면 객체가 초기화 되었습니다. 이유가 무엇인가요? 스택오버플로우 에서는 equals가 재정의되면 프록시 객체에서는 원본객체로 위임한다는 답변이 있습니다. 원본 객체로 위임하면서 초기화가 발생하는것일까요?

  • java
  • jpa
YOGURT 댓글 2 좋아요 0 조회수 466

Projections.fields()와 Projections.bean() 질문입니다.

미해결

실전! Querydsl

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] >> 로컬 환경 스프링부트 3.1.2 hibernate-core 6.2.6 안녕하세요! Projections.bean()은 setter를 이용해서 인스턴스를 만든다고 하셨는데, getter/setter를 전부 제거해도 테스트를 통과하고 인스턴스도 잘 초기화가 되어버렸습니다. 좀 이상하기도 하고 bean()와 fields()가 동작 방식이 거의 같은 것 같아 확인해보니 new QBean<T>를 할 떄 fields()에는 fieldAccess 파라미터에 true를 인수로 넣는 차이밖에 없더라고요. public static <T> QBean<T> fields(Class<? extends T> type, Expression<?>... exprs) { return new QBean<T>(type, true, exprs); } 라이브러리 코드를 보면 fieldAccess가 true면 this.fields에 값을 바인딩하고 this.setters는 emptyList로 초기화하고 fieldAccess가 false일 경우 this.fields를 emptyList로 초기화하고 this.setters에 값을 바인딩하는데요. if (fieldAccess) { this.fields = initFields(bindings); this.setters = Collections.emptyList(); } else { this.fields = Collections.emptyList(); this.setters = initMethods(bindings); } 실무에서 활용할 때 이 두 함수 관련해서 주의점이 있을까요?

  • java
  • jpa
  • projections
  • dto
  • bean
  • fields
literate_t 댓글 1 좋아요 0 조회수 961

세팅 질문입니다.

미해결

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

도커를 사용해서 mysql에 붙혀서 하고있는데 아래와같이 에러가 나옵니다. 어떻게 해야 하나요? order서비스파일에서 에러납니다. db가 안붙어서 그런건가요? 같은 컴퓨터인데 lombok이 동작이 안되길래 lombok되는곳으로 옮겨서 했습니다. 파일 주소는 아래 첨부합니다. error: incompatible types: javax.persistence.criteria.Order cannot be converted to shopapi.jpashop.domain.Order Order order = orderRepository.findOne(orderId); error: incompatible types: shopapi.jpashop.domain.Order cannot be converted to javax.persistence.criteria.Order orderRepository.save (order); ^ error: incompatible types: List<javax.persistence.criteria.Order> cannot be converted to List<shopapi.jpashop.domain.Order> return orderRepository.findAllByString(orderSearch); ^ ^

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
zzzzz 댓글 2 좋아요 0 조회수 368

init 메서드에 @Transactional

해결됨

실전! Querydsl

init() 메서드에 @Transactional 을 넣어주는 이유는 무엇인가요? 감사합니다.

  • java
  • jpa
highjune 댓글 2 좋아요 0 조회수 439

valid 체크 메서드

해결됨

실전! Querydsl

안녕하세요 인증할 때 != null 이라던가 StringUtils.hasText() 를 사용하시던데 ObjectUtils.isEmpty() 함수를 사용하면 한번에 다 처리가 가능한데 사용안하는 이유가 있을까요? 다른 강의에서도 못 본 것 같아서요. 감사합니다.

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

인기 태그

인프런 TOP Writers

주간 인기글