묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
커밋 순서를 바꾸면 안 되나요?
log.info("외부 트랜잭션 커밋"); txManager.commit(outer); log.info("내부 트랜잭션 커밋"); txManager.commit(inner); 논리 트랜잭션들이 모두 커밋돼야 물리 트랜잭션이 커밋돼야합니다. 그런데, 위처럼 순서를 바꿔서 진행해봤는데 외부 트랜잭션 커밋 로그 이후 바로 내부 트랜잭션 커밋 로그가 나오지 않고 데이터베이스에 접근하는것 같은 로그가 나옵니다. 내부 - 외부 순서대로 커밋해야 정상적으로 작동하는건가요? 감사합니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
Qitem이 무엇인가요 ?
@Entity 가 붙어있는 클래스(엔티티) 를 인식하고 QueryDSL 에서 알아서 만들어주는 객체인가요 ?save, update, findById 메쏘드에서는 item을 사용하였는데 findAll에서만 Qitem을 사용한 이유도 궁금합니다따로 설정을 하지 않았는데 Qitem을 item 다루듯이 사용할 수 있는게 이해가 잘 가지 않아 질문 남기게 되었습니다
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
main 패키지 클래스 내부에 run버튼이 생기지 않습니다
원래 메소드 옆에 run 버튼이 떠야 하는데 뜨지 않아서 오류가 생긴 것 같습니다. 구글링 후 add configuration - main 추가를 했지만 그래도 run 버튼이 생기지 않습니다.. 이것 때문에 자잘하게 오류가 뜨는데 어떻게 고칠 수 있을까요??(main 패키지 설정을 Mark Directory As -> Source Root 로도 해봤지만 아무 변화가 없었습니다)
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링 설정 변경
pdf(43/64) 코드를 복붙하면 사진 처럼 빨간색 부분이 에러가 뜹니다 이부분은 제거 하면 되나요??
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
JpaItemRepositoryV2 질문입니다
ItemService는 ItemRepository에 의존하고 있기 때문에 JpaItemRepositor2를 쓰면 소스를 다시 작성해야하기 때문에 새로운 구현체를 만들어야하므로 V2를 만들었다고 알고 있는데요 그러면 결국 JpaitemRepositoryV2 구현체를 만들 때 똑같이 소스를 작성해야돼서 조삼모사 아닌가요?? 어떤 장점이 있는지가 궁금합니다
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
AOP 예외 변환의 장점이 무엇인가요 ?
@Repository를 사용하면 예외 변환 AOP의 적용 대상이 된다는데이게 되면 장점이 무엇인가요 ??JPA예외가 스프링 예외로 바뀌면 뭐가 좋은 것인지 모르겠습니다 ㅠㅠ
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
RDB는 어떻게 공부하는 것이 좋은가요 ?
강의 막판에 RDB도 공부를 해야된다고 말씀하셨는데 영한님 로드맵에는 RDB에 관련된 강의가 없어서요혹시 추천하시는 책이나 강의가 있을까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
지연 로딩을 하면 좋은 점이 있나요 ?
객체가 실제 사용될 때 로딩 하는 것이 지연 로딩이라고 강의에서 말씀하셨는데요 Team team = member.getTeam();String teamName = team.getName();에서 만약 team.getName()을 사용하지 않는다면 Team team = member.getTeam(); 이라는 소스가 필요 없는 것이므로 그냥 삭제하면 되지 않나요 ?? 지연 로딩의 장점이 무엇인지 궁금합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring 아예 처음인데 그냥 커리 쭉 따라가도 될까요?
스프링도 처음이고 자바도 잘 아는건 아닌데 일단 스프링 커리큘럼 1회독 하는것 도움될까요??어떤식으로 동영상을 봐야 효율적으로 공부할 수 있을지 궁금합니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
tomcat은 정확히 무슨 역할을 하는건가요?
web browser에서 localhost url을 넘겨줄때 항상 tomcat을 거쳐가는 것으로 그림이 그려져있는데, 정확히 tomcat이 어떤 것인지, 그리고 어떤 역할을 하는지 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
따라하다가 생긴 의문점인데요.
엔티티에 생성하는 비즈니스 로직서비스에 생성하는 로직리포지토리에 생성하는 로직에 대한 개념을 아직 잘 모르겠습니다.보면서 정리 해보고 있긴한데현재 이해한 방식은 이렇습니다.db에 직접 조회하는 로직, 가장 작은 단위의 로직은 repository에 생성서비스에선 여러가지 기능을 생성하는데기능 생성하면서 repository에 있는 기능만으로는 불가능하고 추가 로직이 필요할 때 엔티티에 기능을 생성하는건가요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
defined in @EnableJpaRepositories 오류
안녕하세요 강사님!강사님의 스프링과 jpa 강의를 듣고 프로젝트를 만드는 중인 학생입니다. 다름이 아니라 따로 좋아요 기능을 추가해서 학습한 내용을 바탕으로 제작 중인데 Error creating bean with name 'likeApiController' defined in file [/Users/gimnayeon/Desktop/GreenProject/GrinGreen/out/production/classes/com/grin/GrinGreen/api/LikeApiController.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'likeService' defined in file [/Users/gimnayeon/Desktop/GreenProject/GrinGreen/out/production/classes/com/grin/GrinGreen/service/LikeService.class]: Unsatisfied dependency expressed through constructor parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'likeRepository' defined in com.grin.GrinGreen.repository.LikeRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract java.util.Optional com.grin.GrinGreen.repository.LikeRepository.findBybusiness(com.grin.GrinGreen.domain.Member,com.grin.GrinGreen.domain.Business)! Reason: Failed to create query for method public abstract java.util.Optional com.grin.GrinGreen.repository.LikeRepository.findBybusiness(com.grin.GrinGreen.domain.Member,com.grin.GrinGreen.domain.Business)! At least 2 parameter(s) provided but only 1 parameter(s) present in query.; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract java.util.Optional com.grin.GrinGreen.repository.LikeRepository.findBybusiness(com.grin.GrinGreen.domain.Member,com.grin.GrinGreen.domain.Business)! At least 2 parameter(s) provided but only 1 parameter(s) present in query. 라는 오류가 뜹니다. LikeRepository@Transactional(readOnly = true) public interface LikeRepository extends JpaRepository<Like, Long> { Optional<Integer> countBybusiness(Business business); Optional<Like> findBybusiness(Member member, Business business); }business entity@ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "mail") private Member member; @OneToMany(mappedBy = "business", cascade = CascadeType.ALL) Set<Like> likes = new HashSet<>();member entity@OneToMany(mappedBy = "member", cascade = CascadeType.ALL) private List<Business> business = new ArrayList<>(); @OneToMany(mappedBy = "member", cascade = CascadeType.ALL) Set<Like> likes = new HashSet<>();like entity@Id @GeneratedValue @Column(name = "like_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) private Member member; @ManyToOne(fetch = FetchType.LAZY) private Business business; public Like(Business business, Member member) { this.business = business; this.member = member; } 처음에는 jparepository에서 findBy 이후 대문자를 쓴 게 문제였나 싶어 수정을 했지만 아니었고파라미터의 Id처럼 대문자로 쓰여진 게 문제인가 봤지만 해당 사항이 없었습니다..아무리 강의를 돌려봐도 감이 안 잡히는 데 어디 부분의 문제일까요?ㅠㅠ파라메터 값이 2개인데 1개만 받아졌다는 오류인 것도 같습니다....
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
클라이언트에대한 질문
일반적으로 클라이언트는 각 브라우저를 이용하는 컴퓨터라고 알고있는데 1분50초 정도에서 DB드라이버 입장에서 애플리케이션 로직이 클라이언트다 라는말이 잘 이해가 가지않습니다 정확한 클라이언트 정의 기준이 있을까요?
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
printproxy의 값
8:10초쯤 printproxy를 호출했을 때 왜 프록시로 출력되나요? CallService 클래스에는 @Transactional 애너테이션이 붙어있지 않은데, 이러면 프록시 대신 실체 객체로 출력돼야 하지 않나요? 혹시, CallService클래스 내부의 internal 메서드에서 @Transactional 애너테이션이 붙어서 프록시로 출력되는건가요? 프록시는 트랜잭션이 시작될 때 생성되는거로 알고 있는데, internal 메서드를 호출하기 전에는 트랜잭션이 시작되지 않아서 실체 객체로 출력돼야된다고 생각했는데.. 제가 어느 부분에서 잘못 생각한지 말씀해 주실 수 있을까요? 감사합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
RequestParam과 PathVariable의 차이
안녕하세요 수업들으면서 RequestParam과 PathVariable의 차이가 궁금해서 질문남깁니다.두 어노테이션 모두 클라이언트에 보낸 값들을 서버부분에서 가지고오는데 두 어노테이션을 언제 어떻게 구분하는지 헷갈려서 질문드립니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Error creating bean with name 'dataSourceScriptDatabaseInitializer' 에러
org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'dataSourceScriptDatabaseInitializer' defined in class path resource [org/springframework/boot/autoconfigure/sql/init/DataSourceInitializationConfiguration.class]: Unsatisfied dependency expressed through method 'dataSourceScriptDatabaseInitializer' parameter 0; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'dataSource' defined in class path resource [org/springframework/boot/autoconfigure/jdbc/DataSourceConfiguration$Hikari.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.zaxxer.hikari.HikariDataSource]: Factory method 'dataSource' threw exception; nested exception is java.lang.IllegalStateException: Cannot load driver class: org.h2.Driver라는 에러가 나옵니다.어떻게 해결해야할까요??
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
JPA 와 스프링 데이터 JPA
JPA 기술만 사용 할 때는 간단한 쿼리를 JPA가 SQL로 작성해 주고, 복잡한 쿼리가 필요한 경우 개발자가 JPQL을 따로 작성해서 처리합니다. 스프링 데이터 JPA를 사용 할 때는 간단한 쿼리든 복잡한 쿼리든 JPQL로 작성 해 줍니다. 혹시 여기까지 제가 잘못 이해한 부분이 있을까요? 그리고, 스프링 데이터 JPA에서는 SQL 대신 JPQL을 사용하는데 SQL을 사용하지 않는 이유를 알 수 있을까요?어차피 JPQL은 SQL로 해석되기 때문에 JPQL로 작성하든 SQL로 작성하든 차이는 없을 것 같은데.. 궁금증에 여쭤봅니다. 남은 연휴 잘 보내시고 좋은 하루 되세요~~
-
미해결스프링 기반 REST API 개발
mvn package 시 다음과 같은 에러가 나시면
Unable to make protected native java.lang.Object java.lang.Object.clone() throws java.lang.CloneNotSupportedException accessible: module java.base does not "opens java.lang" to unnamed module다음과 같은 에러 나시면 plugin 에<groupId>org.asciidoctor</groupId> <artifactId>asciidoctor-maven-plugin</artifactId> <version>2.1.0</version>버전을 최신으로 업데이트 하심 해결됩니다.
-
해결됨스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
HTTP 메시지 컨버터 사용 시 핸들러 어댑터의 반환 값
안녕하세요!강의를 들으며 결국 HandlerAdapter는 내부 로직을 통해 핸들러 종류에 관계없이 ModelAndView를 생성해 DispatcherServlet에게 전달해준다고 이해했습니다.그렇다면, @ResponseBody 등을 사용해 HTTP 메시지 바디에 값을 직접 입력하는 경우에도 ModelAndVIew가 반환되나요? ModelAndVIew 가 내부적으로 뭔가 HTTP 메시지 바디를 그대로 들고있을 수 있는 field 같은 것이 있는건지 궁금합니다.감사합니다!
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
객체 생성을 막아야하는 이유
https://www.inflearn.com/questions/643569 안녕하세요 ConnectionConst abstract Class 관련해서 위의 질문글에 추가적인 질문인데 왜 외부로부터 객체생성을 막고자 하는 것일까요?