묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Order와 Item간의 관계에 대해서 궁금한점이 있습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Order와 Item은 다대다 관계입니다. 하나의 주문이 여러개의 상품을 담을 수 있고, 하나의 상품은 여러개의 주문에 속할 수 있다.여기서 궁금한 점이 있습니다.하나의 상품이 여러 개의 주문이 속할때예를 하나의 상품이라는 객체가 다음과 같이 구성될때id : 1name : 핸드폰stockQuantity : 3categories : 전자제품 이라는 하나의 객체가 주문( id : 2)에도 속하고다른 주문(id:3)에도 속할 수 있다는건가요?
-
미해결따라하며 배우는 리액트, 파이어베이스 - 채팅 어플리케이션 만들기[2023.12 리뉴얼]
[리덕스 미들웨어]강의 중에 createStore에서 막혔습니다.
강사님과 같이 했는데 저는 이렇게 빨간 줄이 뜨면서 리액트앱을 실행시키면 이러한 오류가 뜹니다.ㅠㅠ왜이런걸까요..? 어떻게 해결해야 할까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
H2 DB 테이블 생성이 안됩니다.
안녕하세요 H2 DB 테이블 생성이 안되는데, 스프링부트를 실행하면 에러도 안납니다. H2 연결되어 있습니다.처음에 jpashop.mv.db 도 잘 생성되었습니다.스프링부트를 실행하면 어떤 에러도 없지만, DB테이블이 만들어 지는 문구가 하나도 없습니다H2 콘솔창도 DB 테이블 한개도 없이 아주 깨끗합니다.어떻게 해결할 수 있을까요?? . ____ _ __ _ _ /\\ / ___'_ __ _ _(_)_ __ __ _ \ \ \ \ ( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.1.7) 2023-12-31T15:17:34.731+09:00 INFO 13760 --- [ restartedMain] jpabook.jpashop.JpashopApplication : Starting JpashopApplication using Java 21.0.1 with PID 13760 (C:\Users\dqk86\Downloads\jpashop\out\production\classes started by dqk86 in C:\Users\dqk86\Downloads\jpashop) 2023-12-31T15:17:34.734+09:00 INFO 13760 --- [ restartedMain] jpabook.jpashop.JpashopApplication : No active profile set, falling back to 1 default profile: "default" 2023-12-31T15:17:34.825+09:00 INFO 13760 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : Devtools property defaults active! Set 'spring.devtools.add-properties' to 'false' to disable 2023-12-31T15:17:34.825+09:00 INFO 13760 --- [ restartedMain] .e.DevToolsPropertyDefaultsPostProcessor : For additional web related logging consider setting the 'logging.level.web' property to 'DEBUG' 2023-12-31T15:17:35.417+09:00 INFO 13760 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data JPA repositories in DEFAULT mode. 2023-12-31T15:17:35.437+09:00 INFO 13760 --- [ restartedMain] .s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 12 ms. Found 0 JPA repository interfaces. 2023-12-31T15:17:36.132+09:00 INFO 13760 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port(s): 8080 (http) 2023-12-31T15:17:36.147+09:00 INFO 13760 --- [ restartedMain] o.apache.catalina.core.StandardService : Starting service [Tomcat] 2023-12-31T15:17:36.148+09:00 INFO 13760 --- [ restartedMain] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.17] 2023-12-31T15:17:36.213+09:00 INFO 13760 --- [ restartedMain] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext 2023-12-31T15:17:36.214+09:00 INFO 13760 --- [ restartedMain] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1387 ms 2023-12-31T15:17:36.254+09:00 INFO 13760 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... 2023-12-31T15:17:36.443+09:00 INFO 13760 --- [ restartedMain] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Added connection conn0: url=jdbc:h2:mem:8b0a757c-2d15-4737-adab-1dbaee374f3e user=SA 2023-12-31T15:17:36.445+09:00 INFO 13760 --- [ restartedMain] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Start completed. 2023-12-31T15:17:36.455+09:00 INFO 13760 --- [ restartedMain] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:mem:8b0a757c-2d15-4737-adab-1dbaee374f3e' 2023-12-31T15:17:36.698+09:00 INFO 13760 --- [ restartedMain] o.hibernate.jpa.internal.util.LogHelper : HHH000204: Processing PersistenceUnitInfo [name: default] 2023-12-31T15:17:36.806+09:00 INFO 13760 --- [ restartedMain] org.hibernate.Version : HHH000412: Hibernate ORM core version 6.2.17.Final 2023-12-31T15:17:36.809+09:00 INFO 13760 --- [ restartedMain] org.hibernate.cfg.Environment : HHH000406: Using bytecode reflection optimizer 2023-12-31T15:17:37.052+09:00 INFO 13760 --- [ restartedMain] o.s.o.j.p.SpringPersistenceUnitInfo : No LoadTimeWeaver setup: ignoring JPA class transformer 2023-12-31T15:17:37.941+09:00 INFO 13760 --- [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) 2023-12-31T15:17:37.984+09:00 INFO 13760 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2023-12-31T15:17:38.027+09:00 WARN 13760 --- [ restartedMain] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open-in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open-in-view to disable this warning 2023-12-31T15:17:38.195+09:00 INFO 13760 --- [ restartedMain] o.s.b.a.w.s.WelcomePageHandlerMapping : Adding welcome page: class path resource [static/index.html] 2023-12-31T15:17:38.552+09:00 INFO 13760 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 2023-12-31T15:17:38.576+09:00 INFO 13760 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path '' 2023-12-31T15:17:38.587+09:00 INFO 13760 --- [ restartedMain] jpabook.jpashop.JpashopApplication : Started JpashopApplication in 4.164 seconds (process running for 4.578)
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
[17:34] Modules 설정-JPA추가
강의 17분 34초 내용입니다.해당 파트에서 Modules을 하이버네이트로 설정을 해주는 내용입니다.저 같은 경우 +버튼을 눌렀을 때 JPA를 검색하면 나오지 않습니다. 어떻게 설치하고 설정해야 JPA를 추가할 수 있나요??
-
미해결PWA 시작하기 - 웹 기술로 앱을 만들자
깃허브 권한 부여 요청합니다
인프런 아이디 : seungjin429@naver.com인프런 이메일 : seungjin429@naver.com깃헙 아이디 : seungjin429@gmail.com깃헙 Username : jinShine
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
entity setter 사용 x
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.강의 내용에 entity에 setter는 사용하지 않는다 변경내용을 추적하기 어렵다. 변경 확인하려면 오랜 시간이 소요될 수 있다라고 말씀해주셨는데,entity에 직접적으로 setter 를 쓰지 않고 dto에서 entity 로 옮겨서 save 할 때, toEntity toDto 메소드를 만들어서 일일히 사용하고 있다가 스프링에서 지원하는 BeanUtils.copyPropertyies(source,target) source -> target으로 복사하는 메소드를 알게 되었고, 이게 작동되려면 source에는 getter 가 target 에는 setter 가 필요한 걸로 알고 있는데 화면에서 받아온 requestDTO 를 entity로 복사할 때 entity에 setter 가 필요한데 이걸 사용하기보다 그냥 builder 패턴을 사용한 메소드를 사용하는 게 맞을까요?.. 궁금하여 질문드립니다..
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
제품을 배열로 다시 재정리 해줄때 split 후에 map을 하는 이유
따라하며-배우는-노드-리액트-쇼핑몰 > 쇼핑 카트 페이지 데이터 가져오기 강의를 수강중에 있습니다.17:30 부근에 제품을 배열로 다시 재정리 해주는 걸 설명해주고 계시는데 split 후에 map을 하는 이유가 궁금합니다.값을 map 처리하기 전후로 찍어보니 값이 동일하게 나오는데 map 처리를 해주는 이유가 따로 있나 싶어서 여쭤봅니다.
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
redux thunk 관련 질문있습니다.
안녕하세요! 항상 좋은 강의 만들어주셔서 감사합니다ㅎㅎㅎ 이번에 새로 업데이트 된 강의를 들으면서 redux 강의 부분을 듣고 있다 이전 john ahn님의 로그인 강의 예제에서 질문이 생겼습니다.john ahn님의 로그인 강의에서export function loginUser(dataToSubmit) { const request = axios.post('/api/users/login', dataToSubmit) .then(response => response.data) return { type: LOGIN_USER, payload: request } } 이런식으로 로그인을 한 적이 있습니다! 이 때는 이 방법이 redux-thunk를 사용한 방법인 줄 알았는데, 강의를 들어보니 이것은 redux-thunk를 이용하지 않은 방법이라는 것을 알게되었습니다. 근데, axios를 사용해서 비동기로 처리했는데도 제 기억에 login 강의는 잘 동작했었습니다.왜 잘 동작했는지 chat GPT를 통해 질문하니 답변으로 이것은 잘 동작하지 않는 코드이고 "이 코드에서 axios.post는 비동기 함수이고, .then(response => response.data)를 통해 HTTP 요청의 결과를 처리하고 있습니다. request 변수는 이제 비동기 요청이 성공적으로 완료되었을 때 응답 데이터를 갖게 됩니다. 그러나 여전히 request는 프로미스입니다. 프로미스는 비동기 작업이 완료될 때까지 "미래의 값"을 나타내는 객체입니다." 이런 답변을 해주었습니다. 제가 생각해도 이것이 맞는 말 같은데 redux-thunk를 사용하지 않아도 왜 잘 동작한걸까요?? 굳이 redux-thunk를 사용하지 않아도 돼는 건가요?? 아니면 이번이 특별한 경우인가요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
[MemberRepositoryTest에서 Transaction 없이 실행하면, Error가 발생하지 않습니다.]
[질문 내용]영상 12:45 내용입니다. 제목 그대로 MemeberRepositoryTest를 실행하는 과정에서 Transaction없이 실행하면 Error가 발생해야 하는데, 발생하지 않습니다. 왜 그런지 궁금합니다. 질문을 수정하겠습니다. 실행결과를 다시 살펴보니 Error가 발생하지 않는 것이 아니라 Test가 실행되지 않고 있었네요ㅜ TDD 자체가 실행되지 않았습니다.@Transactional을 설정하고 다시 실행하였더니, test file 자체가 생성되지 않았고, fail인지 아닌지도 확인할 수 없었습니다.
-
해결됨PWA 시작하기 - 웹 기술로 앱을 만들자
깃허브 권한 부여 요청합니다
인프런 아이디 : study2845인프런 이메일 : study2845@naver.com깃헙 아이디 : kimmy100b@gmail.com깃헙 Username : kimmy100b
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
nosuchmethod 문제해결
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]세팅을 하는 도중, Junittest를 하려고하는데 Nosuchmethod 오류가 발생해 구글링 후 window - preferences - gradle - advanced option- program argyments 에 -Pjunit-jupiter.version=5.10.0 이 코드를 추가했는데 상관이 없는지 여쭤보려고 글 작성하였습니다. 해당 답변은 https://stackoverflow.com/questions/77110882/i-cant-run-junit-5-9-x-tests-in-eclipse-2023-09-4-29-0/77150487#77150487여기서 얻었습니다.[추가질문]기존 sts4로 공부를하는데 강사님이 사용하시는 intelliJ를 사용하는게 좋은지도 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
JPA @Transactional
[질문 내용]JPA 기술을 사용할 때 리포지토리 계층에 @Transactional을 붙여줘야 한다고 말씀해주셨는데 MemberRepository 코드에서는 JPA를 사용하는데 왜 @Repository만 붙여주는 건가요??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberRepositoryTest
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]WARNING: A Java agent has been loaded dynamically (C:\Users\home\.gradle\caches\modules-2\files-2.1\net.bytebuddy\byte-buddy-agent\1.14.10\90ed94ac044ea8953b224304c762316e91fd6b31\byte-buddy-agent-1.14.10.jar)WARNING: If a serviceability tool is in use, please run with -XX:+EnableDynamicAgentLoading to hide this warningWARNING: If a serviceability tool is not in use, please run with -Djdk.instrument.traceUsage for more informationWARNING: Dynamic loading of agents will be disallowed by default in a future releaseOpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended테스트는 성공하는데 이렇게 경고문이 뜨는데 무시해도 될까요?? 구글링 해봐도 안나와서요
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
test중 NullPointerException에러발생
jpa와 db설정, 동작확인 강의를 듣고 클론코딩 중test중 NullPointerException에러발생mainjpabook.jpashop.Memberpackage jpabook.jpashop; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; import lombok.Getter; import lombok.Setter; @Entity @Getter @Setter public class Member { @Id @GeneratedValue private Long id; private String username; }jpabook.jpashop.MemberRepositorypackage jpabook.jpashop; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import org.springframework.stereotype.Repository; @Repository public class MemberRepository { @PersistenceContext EntityManager em; public Long save(Member member) { em.persist(member); return member.getId(); } public Member find(Long id) { return em.find(Member.class, id); } } testjpabook.jpashop.MemberRepositoryTestpackage jpabook.jpashop; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.test.annotation.Rollback; import org.springframework.transaction.annotation.Transactional; import static org.assertj.core.api.Assertions.assertThat; public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test @Transactional @Rollback(false) public void testMember() { Member member = new Member(); member.setUsername("memberA"); Long saveId = memberRepository.save(member); Member findMember = memberRepository.find(saveId); assertThat(findMember.getId()).isEqualTo(member.getId()); assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); } } application.ymlspring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true format_sql: true logging.level: org.hibernate.SQL: debug org.hibernate.type: trace build.gradleplugins { id 'java' id 'org.springframework.boot' version '3.2.1' id 'io.spring.dependency-management' version '1.1.4' } group = 'jpabook' version = '0.0.1-SNAPSHOT' java { sourceCompatibility = '17' } configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' } tasks.named('test') { useJUnitPlatform() }build, run 모두 intellj IDE로 하는중입니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
expected 옵션이 적용되지 않아 질문드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. junit4 적용된걸 확인했는데도 test에서 적용이 안돼 질문드립니다 orderServiceTest 상품주문_재고수량초과 @TEST에서 expeced 오류로 뜹니다. @Test(expeced = NotEnoughStockException.class); public void 상품주문_재고수량초과() throws Exception{ //given Member member = createMember(); Item item = createBook("시골 JPA", 10000, 10); int orderCount =11; //when //Assertions.assertThatThrownBy(()->orderService.order(member.getId(), createBook().getId(). orderCount)) // .isInstanceOf(NotEnoughStockException.class); orderService.order(member.getId(), item.getId(), orderCount); //then fail("재고 수량 부족 예외가 발생해야한다"); build.gradledependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' implementation("com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.5.6") testImplementation 'junit:junit:4.13.1' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation("org.junit.vintage:junit-vintage-engine") { exclude group: "org.hamcrest", module: "hamcrest-core" } }
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberRepositoryTest가 실행이 안돼요. (spring boot가 졌다 바로 꺼짐)
1장 프로젝트 환경설정 부분 듣고 있습니다! test는 실행되는데 ,Test 실행 후 localhost에 접속해서 h2-console에 들어가야되는데, 바로 spring boot가 꺼져버려서 강의 진도를 못나가고 있어요 ㅠㅠ 강의pdf 꼼꼼히 읽어보고 yml, build.gradle도 고쳤는데 안됩니다. 뭐가 잘못된 걸까요? ㅠㅠ 아래는 log 끝 부분 입니당,, DB에 값이 들어갔다가 오류 메시지가 뜨네요insert into member (username,id) values (?,?) insert into member (username,id) values ('memberA',1); 2023-12-21T21:29:43.402+09:00 INFO 25432 --- [ Test worker] p6spy : #1703161783402 | took 1ms | commit | connection 4| url jdbc:h2:tcp://localhost/~/jpashop ; OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended 2023-12-21T21:29:43.464+09:00 INFO 25432 --- [ionShutdownHook] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2023-12-21T21:29:43.469+09:00 INFO 25432 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2023-12-21T21:29:43.492+09:00 INFO 25432 --- [ionShutdownHook] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. 아래는 application.yml입니다spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop; username: sa password: driver-class-name: org.h2.Driver jpa: hibernate: ddl-auto: create properties: hibernate: # show_sql: true format_sql: true dialect: org.hibernate.dialect.H2Dialect logging.level: org.hibernate.SQL: debug # org.hibernate.orm.jdbc.bind: trace #스프링 부트 3.x, hibernate6 아래는 build.gradle 입니다 plugins { id 'java' id 'org.springframework.boot' version '3.1.6' id 'io.spring.dependency-management' version '1.1.4' } group = 'jpabook' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-validation' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'org.springframework.boot:spring-boot-devtools' implementation 'com.github.gavlyukovskiy:p6spy-spring-boot-starter:1.9.0' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation("org.junit.vintage:junit-vintage-engine"){ exclude group: "org.hamcrest", module: "hamcrest-core" } } tasks.named('test') { useJUnitPlatform() }
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
OrderList.html 타임리프 파싱 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 여러 질문 글을 남기다가 문제가 발생되는 것 같은 곳을 찾았습니다.드래그 표시한 th:each="status : ${T(jpabook.jpashop.domain.OrderStatus).values()}"이부분 입니다.해당 코드를 지우면 주문 내역이 나오지만,반면에 저 코드를 다시 넣으면 이러헥 에러가 발생합니다. 문제 되는 부분만 간추려 찍어보면,, org.thymeleaf.exceptions.TemplateInputException: An error happened during template parsing (template: "class path resource [templates/order/orderList.html]") Caused by: org.attoparser.ParseException: Exception evaluating SpringEL expression: "T(jpabook.jpashop.domain.OrderStatus).values()" (template: "order/orderList" - line 16, col 33) Caused by: org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "T(jpabook.jpashop.domain.OrderStatus).values()" (template: "order/orderList" - line 16, col 33) Caused by: org.springframework.expression.spel.SpelEvaluationException: EL1005E: Type cannot be found 'jpabook.jpashop.domain.OrderStatus' org.springframework.expression.spel.SpelEvaluationException: EL1005E: Type cannot be found 'jpabook.jpashop.domain.OrderStatus' 이런 식으로 나오긴 하는데.. 여기 이렇게 잘 있습니다.. th:each="status : ${T(jpabook.jpashop.domain.OrderStatus).values()}" ```이 코드 방법 없을까요??
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
강의 업데이트 질문드립니다
안녕하세요.채팅앱은 구름에듀에서 수강중입니다.구름에듀에도 강의 업데이트 가능하시면 부탁드립니다.좋은 강의 항상 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
application.properties 안에 작성하는 것이 아니라 yml 파일로 두는 것인가요?
안녕하세요~! 질문이 있어 이렇게 남깁니다. 다른 답글을 보니 다양한 설정 방법이 있다라는 말씀을 남겨주셨는데 제가 다운 받은 springboot 에는 application.properties가 따로 있는데 이것과 병행해서 사용해도 문제가 없는 건가요? 아니면 환경설정을 하나로만 유지해야 되는건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
em.persist() 메서드 호출시 id값 얻어오기
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.회원 서비스 개발 4분쯤에 영한님께서 em.persist() 메서드로 영속성 컨텍스트에 인스턴스가 들어가게되면, DB에 들어가기 전에 id(key)에 대한 값이 들어가지게 된다고 하셨는데, 제가 이전에 들었던 부분은 insert쿼리가 나갔다가 저장된 엔티티를 통해서 id값을 받아오는 걸로 알고 있습니다.그래서 JPA 기본편 4챕터를 찾아보니, JDBC3에서 추가된 `Statement.getGeneratedKeys()` 이 메서드를 사용하면, 데이터를 저장하면서 동시에 생성된 기본 키 값도 얻어올 수 있다는 것을 제가 정리해놨었는데, getGeneratedKeys() 메서드가 ResultSet을 반환하던데, 구글링 해보니 ResultSet은 DB에서 조회한 정보가 담겨있는 것이더라구요. 그래서 연결지어서 생각해보니 getGeneratedKeys() 메서드를 호출해서 DB에서 마지막 결과의 id를 조회해서 할당하는 이런 방식으로 동작 하는 건가.. 생각하기도 했지만, 잘 모르겠습니다....ㅎㅎ답변 부탁드리겠습니다!