inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

Error creating bean with name 'dataSourceScriptDatabaseInitializer' 에러

해결됨

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

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 라는 에러가 나옵니다. 어떻게 해결해야할까요??

  • JPA
  • spring
  • 웹앱
  • spring-boot
  • java
유지훈 댓글 1 좋아요 1 조회수 11187

DTO에 @Getter가 필요한 이유

해결됨

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

OrderDto, OrderItemDto 같은 DTO에 @Getter 가 필요한 이유가 궁금합니다. 또, 요청을 받는 DTO는 요청 받을 필드만 선언하면 되고, 응답용 DTO는 응답하고 싶은 필드만 정의 하여 생성자를 만들면 되는지 궁금합니다.

  • java
  • JPA
  • spring
  • spring-boot
tksrleo123 댓글 1 좋아요 3 조회수 993

Querydsl4RepositorySupport에 @Repository와 @Autowired

미해결

실전! Querydsl

안녕하세요. 강의 잘 보고 있습니다. 궁금한 점이 있습니다. Querydsl4RepositorySupport는 abstract class인데 왜 @Repository를 붙이는건가요? 실체 구체화할 부모 클래스에 @Repository를 붙이면 되는것 아닌가요? Querydsl4RepositorySupport는 abstract class라 객체로 생성이 안되는데 빈으로 등록이 가능한가요? 이어서 setEntityManager에 @Autowired를 붙임으로써 의존성을 주입하고 있습니다. 그때에 entityManager라는 빈을 등록해주겠죠. 그런데 setEntityManager는 언제, 누가 호출하게 되는건가요?

  • java
  • JPA
Louie(루이) 댓글 1 좋아요 2 조회수 764

./h2.sh 실행이 안되네요

미해결

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

1:07분에서 하는 것처럼 똑같이 해서 터미널로 들어가서 bin폴더까지 접근해서 거기서 cat h2.sh를 하면 영상처럼 똑같이 나옵니다. 그래서 다음 단계인 ./ h2.sh 를 했는데 permission denied라는 문구가 출력됩니다. 그래서 sudo ./h2.sh를 할 경우 sudo: ./ h2.sh : command not found 라는 문구가 출력됩니다. h2-1.4.199.jar h2.bat h2.sh h2w.bat a@aui-iMac bin % cat h2.sh #!/bin/sh dir=$(dirname "$0") java -cp "$dir/h2-1.4.199.jar:$H2DRIVERS:$CLASSPATH" org.h2.tools.Console "$@" a@aui-iMac bin % ./h2.sh zsh: permission denied: ./h2.sh a@aui-iMac bin % sudo ./h2.sh Password: sudo: ./h2.sh: command not found 혹시 이럴때는 어떻게 해결해야 되나요?

  • JPA
  • spring-boot
  • spring
  • 웹앱
  • java
Cho Seong Yong 댓글 2 좋아요 0 조회수 1449

주문에서 orderItem

미해결

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

주문하는 메서드에서 주문상품을 생성하는데 여러개의 상품을 주문할 때도 가능한 건가요?? 그럼 itemId가 여러 개 있어야 하는 건 아닌지 궁금합니다.

  • spring
  • JPA
  • java
  • spring-boot
  • 웹앱
jjin 댓글 1 좋아요 0 조회수 457

호돌님 ! 이부분에서 Request클래스와 Response클래스가 DTO가 아닌 이유가 무엇인가요 ?

미해결

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

19분 20초에 호돌님께서 Request클래스와 Response클래스가 DTO는 아니라고 말씀하셨는데요~ 그렇다면 DTO라고 말할 수 있을 만한 조건은 무엇이고, 지금은 무엇이 부합하지 않는 걸까요 ? 그러면 현 상태에서 클래스는 엔티티도 아니고 DTO도 아닌 무엇이라고 지칭할 수 있는 클래스 인건가요 .. ?

  • JPA
  • Spring Security
  • vuejs
  • aws
  • spring-boot
2등전략 댓글 2 좋아요 3 조회수 1070

강의 도중 말씀에 대한 간단한 질문

미해결

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

안녕하세요 강사님! 수업 너무 잘 듣고 있습니다. 다름이 아니라 설명하시는 도중 18:20 가량 부터 잠깐 하시는 말씀에 대해 조금 이해가 덜 된 것 같아서 질문을 좀 드리고 싶어서 글을 남기게 되었습니다. 1. 설계하고 돌려서 테이블 생성된 것을 보고 원하는 대로 만들어졌는지 확인하는 것을 반복하라 >> DB 테이블에 칼럼들 들어간 모습들과 내가 원하는대로 들어갔는지 확인하면서 해라! 라는 말씀으로 이해하면 되는 걸까요? 2. 생성된 것을 그대로 쓰면 안된다(?) >> 제가 실무를 혼자서 진행해보고 DBA 분들과 얘기를 해본적이 없어서 이해가 잘 안됐을 수도 있는데, 혹시 이부분에서 말씀하시는 그대로 쓰면 안된다는게 어떤 부분인지 조금 더 말씀해주실 수 있을까요? Script 란 DB sql 들어가는 글들을 말씀하시는 것 같은데, 해당 SQL 을 따로 뽑아서 한번 쭉 본 후에 JPA DDL-AUTO 기능을 사용하지 말고 직접 DB workspace 같은 공간에 직접 import 를 해주는 방식으로 하라는 말씀이실까요? 도움주셔서 감사합니다!

  • JPA
  • java
  • 웹앱
  • spring-boot
  • spring
강우석 댓글 1 좋아요 2 조회수 252

Editor 에 대한 질문..

해결됨

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

안녕하세요. 강의를 듣다가 Editor 클래스에 대해 궁금한점이 생겨서 질문을 남기게 되었습니다. Editor 클래스를 사용하면 수정 시 content 나 title 값이 빈 값 또는 NULL 값이 들어오는 것을 방지하기 위한 목적도 있다하셨는데, 해당부분은 요청받는 컨트롤러에서 @Valid 로 검증할 수 있다고 생각되는데, 어떻게 생각하시는지 궁금합니다. Editor 클래스를 새로 생성하게 되면 Post 엔티티 클래스가 Editor 클래스에 의존하게 되는게 아닌가 생각이 드네요. 또 궁금한것이 Editor 클래스를 혹시 Post 엔티티 클래스 내부에서 선언해서 사용하는 것과 호돌맨님이 구현하신 것 처럼 외부에 클래스를 생성해서 사용하는 것과 다른부분이있을까요? 내부클래스로 사용한다면 확실하게 의도를 알 수 있을거 같아서 질문드립니다! package com.blog.api.domain; import lombok.AccessLevel; import lombok.Builder; import lombok.Getter; import lombok.NoArgsConstructor; import javax.persistence.*; import javax.validation.constraints.NotBlank; @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Post { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String title; @Lob // DB에는 TEXT 타입으로 생성. private String content; @Builder public Post(String title, String content) { this.title = title; this.content = content; } public void edit(PostEditor postEditor) { this.title = postEditor.getTitle(); this.content = postEditor.getContent(); } public PostEditor.PostEditorBuilder toEditor() { return PostEditor.builder() .title(this.title) .content(this.content); } @Getter public static class PostEditor { private String title; private String content; @Builder public PostEditor(String title, String content) { this.title = title; this.content = content; } } }

  • vuejs
  • Spring Security
  • aws
  • JPA
  • spring-boot
김국영 댓글 1 좋아요 1 조회수 454

안녕하세요. 스프링 정복 로드맵 db2편까지 완강하고 수강하는 학생입니다.

해결됨

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

스프링 정복 로드맵 2편까지 완강 후 jpa 활용 1편을 듣고 있는데요. 아무래도 시간이 좀 지난 강의라 db2편에서 들었던 jpa와 jpa 활용에서 듣는 jpa간에 셋팅이 다른 점이 있는데요. (entitymanager에 @persistencecontext 를 달아주시거나, 테스트하시면서 resources에 schema 를 설정하시는 대신 spring.jpa.hibernate.ddl-auto=create 를 설정하시는 등) db2편이 최신이므로, db2편을 기준으로 확장해나가는 편이 나은지 혹은 jpa shop에서 하시는 것을 새로이 기준으로 하면 좋을지 여쭤봅니다! 별개로 강의는 항상 잘 듣고 있습니다. 감사합니다!

  • jpa
  • java
  • 셋팅관련
  • spring
  • database
  • 웹앱
  • JPA
  • spring-boot
댓글 1 좋아요 0 조회수 314

SEQUENCE 전략 초기값과 호출 횟수 문의드립니다.

해결됨

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

안녕하세요. 강의 열심히 듣고 있는 주니어 개발자입니다. 강의 내용 똑같이 수행했으나 시퀀스 값이 다른 점이 있어 문의드립니다. (33:05) 부분에서 시퀀스 전략 속성값 initialValue=1, allocationSize=50 으로 설정했을시 persist 이전에 초기값이 -49라고 나오지만 제 환경에서는 초기값이 1로 나옵니다. H2 DB 2.1.214, Hibernate 5.6.10을 사용중인데 혹시 버전이 달라서 그런걸까요? 로그에는 시퀀스에 대한 call next value를 호출하지 않으며 제 생각에도 initialValue=1 로 명시되어 있기 때문에 초기값이 1인게 정상인 것 같은데 제가 놓치는 부분이 있는지 문의드립니다. 위 질문의 연장선으로 persist 1번 수행시 call next value 수행 결과는 아래와 같은데요. DB 시퀀스 자체의 increment값이 50이어서 51이 되는것은 이해하였습니다. JPA에서 51번째 데이터까지는 DB 시퀀스를 참조하지 않고 메모리에서 꺼내와야하는데 persist로 객체를 2번 저장시 아래와 같이 call next value가 2번 호출이 되고 시퀀스 값은 101이 됩니다. (33:43) 여기서 2번 호출 되는 이유가 JPA 애플리케이션에서 사용하는 allocationSize가 50이기 때문에 추후 자신이 사용할 메모리 시퀀스값을 선점하기 위해서라고 이해했는데요. (DB에는 51로 증가시켜놓고, 2부터 51까지 사용하기 위함) 이렇게 되면 제 경우에는 2를 사용하기 위해서 시퀀스 값을 101로 올려놓는 이상한 동작을 하는 것인데 이해가 가지 않습니다. 또한 위와 같이 52번째 객체 저장시 call next value가 한번 더 수행되어 시퀀스 값은 151이 됩니다. 의도한대로 작동은 하지만 시퀀스가 한단계씩 밀려서 작동한다는 것이 이해가 가지 않습니다.

  • sequence
  • pk
  • JPA
  • jpa
  • java
  • hibernate
  • allocationsize
Seunghoon Choi 댓글 2 좋아요 8 조회수 1012

연관관계 메서드

미해결

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

왜 연관관계 메서드에서 어떤 건 set이라고 하고 어떤 건 add라고 하나요?? ex. setMember() / addOrderItem() //== 연관관계 메서드 ==// public void setMember(Member member) { this.member = member; member.getOrders().add(this); } public void addOrderItem(OrderItem orderItem) { orderItems.add(orderItem); orderItem.setOrder(this); } public void setDelivery(Delivery delivery) { this.delivery = delivery; delivery.setOrder(this); } setMember는 member.getOrders()라고 하고 setDelivery()는 setOrders()로 다른 이유는 무엇인가요?? 여기서 this는 order를 의미하는 걸까요??

  • java
  • JPA
  • spring
  • spring-boot
  • 웹앱
jjin 댓글 1 좋아요 2 조회수 516

질문이 있습니다.

미해결

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

private List<OrderItemQueryDto> findOrderItems(Long orderId) { return em.createQuery( "select new jpabook.jpashop.repository.query.OrderItemQueryDto(oi.order.id, i.name, oi.orderPrice, oi.count)" + " from OrderItem oi" + " join oi.item i" + //이걸 왜 하는거지 => 실 객체바꿀라고? " where oi.order.id = :orderId", OrderItemQueryDto.class ).setParameter("orderId", orderId).getResultList(); } 위 코드에서 "join oi.item" 하는 이유가 궁금합니다. OrderItem엔 Item이 있으니 i.name 대신 oi.item.name하여도 될 것 같은데 굳이 Item도 조인하는 이유가 있을까요? 제가 생각한 결과로는 Item을 조인하여 i.name할 때 Item이 프록시에서 실 객체로 바뀌니 이것을 위해 조인하였을 것 같은데 맞을까요?

  • java
  • JPA
  • spring-boot
  • spring
김형민 댓글 1 좋아요 0 조회수 298

dto 설계시 궁금증

미해결

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

위와같이 Form의 필드가 4개라고 했을 때 각각을 입력하거나 입력하지 않는 경우 총 2^4 = 16개입니다. 그렇다고 하면 dto에 입력 경우의 수에 따른 변경감지 로직을 총 16개 작성해 두어야하는건가요? 어떻게 설게를 해야하는지 궁금합니다.

  • java
  • spring-boot
  • JPA
  • 웹앱
  • spring
taeu kim 댓글 1 좋아요 1 조회수 394

createMember, createItem 메서드

미해결

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

테스트 클레스에 createMember, createBook 메서드를 만들었는데 이걸 domian에 생성하고 기본 생성자를 protect로 만들어놓으면 OrderItem에서 했던 방식처럼 더 나은 방식인건가요??

  • JPA
  • java
  • spring-boot
  • spring
  • 웹앱
댓글 1 좋아요 0 조회수 445

/orders에서 화이트라벨페이지가 뜹니다..

해결됨

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

짧은 지식으로 추측컨데, html파일에 문제가 있는것으로 판단해 몇차례 확인 후 복붙을 시도해보았습니다 매핑을 잘못한것인가 컨트롤러도 수차례 확인하였고... 혹시 관련된 비지니스로직에서 데이터를 잘못 불러오는것인지,, 데이터를 백업해두고, 강의 초반에 있는 소스코드를 통해 java 부분과 templates을 통채로 복사해보았음에도, 해결이 되지 않습니다. 최대한 혼자서 해결하려 했으나... 도저히 해결방안이 떠오르지 않아서 질문드립니다. 어째서 이러한 문제가 발생하는것일까요...?ㅜㅜ 하단에 구글드라이브 링크 첨부해두었습니다. 도와주세요...ㅠㅠ 야생형 코스로 활용 -> 기본 -> 활용 단계로 복습하는 시점이라..(1회차에선 멀쩡히 넘겼던 부분을 2회차때 도저히 못고치는 기현상...... ㅜㅜ) 아티펙트, 그룹명이 jpabook2 , jpashop2 로 설정되어 있습니다. 이점 양해 부탁드립니다.. https://drive.google.com/file/d/1gY3cQKM2yq8SsObwAMAbk3gKOScsx6Jp/view?usp=sharing

  • JPA
  • 웹앱
  • spring-boot
  • spring
  • java
하나 댓글 1 좋아요 1 조회수 450

양방향이 왜그렇게 안좋은건가요?

미해결

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

유저객체에서 List<Order>를 가지는게 왜 안좋나요? 유저 주문 목록을 가지고 있으면 성능면에서 더 이득이 크지 않나요? 주문목록을 유저가 가지고 있다면 해당 주문ID를 바로 검색해서 더 빠르게 조회할 수 있지 않나요? 하지만 유저가 List를 갖고있지 않다면 모든 주문목록에서 유저ID로 하나하나 검색해나가면서 불러오는게 상대적으로 많이 느리지 않나요? 양방향이 될 수 있으면 없는게 좋다고 하셨는데, 실제로 통계를 만들때나 각종 상황에서 서로가 서로를 참조하는 일이 많지 않나요? 판매자 입장에서 판매하는 아이템의 구매자의 주소를 아는 것은 중요할 것이고, 팀 입장에서도 팀에 어느 선수들이 있는지 아는게 중요하지 않나요?

  • JPA
  • java
ryne LEE 댓글 1 좋아요 6 조회수 776

My Json Editor

미해결

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

호돌맨님 안녕하세요 강의 진행중 사용하는 My Json Editor Tool 은 혹시 어디서 다운로드 받을수 있을까요? 안내해주시면 감사하겠습니다 ㅎㅎ

  • Spring Security
  • JPA
  • vuejs
  • spring-boot
  • aws
goodbyeyo2 댓글 1 좋아요 3 조회수 1100

JPA에 Index 힌트 적용 질문드립니다.

해결됨

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

최근에는 실무에서 JPA위주로 쿼리를 짜다보니, 성능이 안나오는 쿼리에 대해서는 index 힌트를 줘야 하는 상황이 종종 생기고 있는데요, 혹시 이럴땐 어떻게 하시나요? 마이바티스로 하기에는 특정쿼리만 빼기에는 일관성이 없는거 같고.. JPQL로 짜자니 인덱스 힌트 지원이 안되는걸로 알고있구요.. @natvieQuery로 생짜 쿼리 짜서 인덱스 힌트 주는 방법 밖에 없을까요?

  • JPA
  • java
김정훈 댓글 1 좋아요 2 조회수 3167

애플리케이션 안에서 Sequence 관리 질문

미해결

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

안녕하세요! 수강생입니다. 항상 감사하며 공부하고 있습니다. DB Sequence 관리에 대해서 질문이 있습니다. Sequence 를 확보하고 사용하는 것의 관리 범위는 영속성 컨텍스트가 아닌, 애플리케이션 범위인가요? 예를 들어 한 애플리케이션 안에서 두 개의 트랜잭션 A, B가 병렬적으로 엔티티를 영속화 한다고 치면 A.Entity.id = 1 B.Entity.id = 2 A.Entity.id = 3 ... 이런식으로 애플리케이션 단위로 공유되는 것인지 궁금합니다.

  • 시퀀스
  • java
  • 기본키매핑
  • JPA
갓그니 댓글 1 좋아요 1 조회수 511

일대일 optional 여부에 따른 UNIQUE 제약

미해결

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

안녕하세요! 강의를 너무나 잘 듣고 있습니다. 일대일 강의를 들으면서 이것저것 만져보다가 @OneToOne(optional=true) 인 경우에는 UNIQUE 제약이 걸리지 않고 반대로 false인 경우에는 UNIQUE 제약이 걸리는 것을 알게 되었습니다. 혹시 이렇게 구현된 이유가 무엇인지 알 수 있을까요?

  • 일대일
  • optional
  • JPA
  • java
김태경 댓글 1 좋아요 3 조회수 561

인기 태그

인프런 TOP Writers

주간 인기글