tno값 초기화
미해결
코드로 배우는 React 19 with 스프링부트 API서버
제목 그대로 tno값은 어떻게 초기화 시키나요? testDelete 함수를 이용해서 삭제후 다시 testInsert 함수를 이용해서 1 ~ 100까지 만들고 싶은데, tno값은 1부터 시작하는게 아닌, 기존의 tno값부터 1씩 증가됩니다.
- react
- spring-boot
- jpa
- jwt
- redux-toolkit
176만명의 커뮤니티!! 함께 토론해봐요.
미해결
코드로 배우는 React 19 with 스프링부트 API서버
제목 그대로 tno값은 어떻게 초기화 시키나요? testDelete 함수를 이용해서 삭제후 다시 testInsert 함수를 이용해서 1 ~ 100까지 만들고 싶은데, tno값은 1부터 시작하는게 아닌, 기존의 tno값부터 1씩 증가됩니다.
미해결
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka가 뭔지 잘 몰랐는데 덕분에 잘 수강하고 있습니다. order-service로 하나의 db에 데이터동기화는 이해했습니다. 제목의 질문인 멀티db의 경우는 어떻게 처리하는지 궁금해서 질문드립니다. order-service1 --- order-db1 order-service2 --- order-db2 이렇게 연결된 서비스의 경우 kafka로 db1에 입력된 정보가 db2로 db2는 db1으로 서로 동기화도 가능한가요? 서비스가 더 증가할 경우도 가능한가요? (db1 -> db2,3,4...) db를 master/slave 구성은 해봤는데 msa로 동일db 여러개가 동기화 설정 가능한지 궁금해서 문의드립니다.
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] Database "/home/ubuntu/test" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-224] 90149/90149 (도움말) 오류가 발생합니다.. 구글링을 해보니t est.mv. db 를 생성해주어야하더라구요.. 원래 맨처음에는 잘 됐는데 비번 잘못설정해서 다 삭제하고 다시 설치하였습니다. 일단 설명대로 C:\Users\user에 직접 만들어주었습니다. 하지만 같은 오류가 발생해서 원인을 모르겠습니다 ㅠㅠ.ㅠ
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
매뉴얼이 어디있나요?
미해결
PZM기반 실무중심 백엔드 부트캠프(프리트레이닝)
interface를 class로 인식하는 것 같아요
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
private final MemberRepository memberRepository; @Autowired public SpringConfig(MemberRepository memberRepository){ this.memberRepository = memberRepository; } 자동 주입을 할 수 없습니다. 'MemberRepository' 타입의 bean이 두 개 이상 있습니다. Beans: memoryMemberRepository ( MemoryMemberRepository.java ) springDataJpaMemberRepository ( SpringDataJpaMemberRepository.java ) 라는 오류가 발생합니다 어디를 고쳐야 하는 건가요
미해결
실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
2024-06-15T19:47:56.267+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 join member m1_0 on m1_0.member_id=o1_0.member_id limit ? 2024-06-15T19:47:56.270+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:INTEGER) <- [1000] 2024-06-15T19:47:56.285+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.member_id=? 2024-06-15T19:47:56.285+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [1] 2024-06-15T19:47:56.291+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id=? 2024-06-15T19:47:56.291+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [1] 2024-06-15T19:47:56.295+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=? 2024-06-15T19:47:56.296+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [1] 2024-06-15T19:47:56.298+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select m1_0.member_id, m1_0.city, m1_0.street, m1_0.zipcode, m1_0.name from member m1_0 where m1_0.member_id=? 2024-06-15T19:47:56.298+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [2] 2024-06-15T19:47:56.300+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select d1_0.delivery_id, d1_0.city, d1_0.street, d1_0.zipcode, d1_0.status from delivery d1_0 where d1_0.delivery_id=? 2024-06-15T19:47:56.300+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [2] 2024-06-15T19:47:56.302+09:00 DEBUG 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.SQL : select o1_0.order_id, o1_0.delivery_id, o1_0.member_id, o1_0.order_date, o1_0.status from orders o1_0 where o1_0.delivery_id=? 2024-06-15T19:47:56.302+09:00 TRACE 12540 --- [jpa1] [nio-8080-exec-1] org.hibernate.orm.jdbc.bind : binding parameter (1:BIGINT) <- [2] @GetMapping("api/v2/simple-orders") public List<SimpleOrderDto> ordersV2() { List<Order> orders = orderRepository.findAllByString(new OrderSearch()); List<SimpleOrderDto> result = orders.stream().map(order -> new SimpleOrderDto(order)) .collect(Collectors.toList()); return result; } @Getter public static class SimpleOrderDto { private Long orderId; private String name; private LocalDateTime orderDate; private OrderStatus orderStatus; private Address address; public SimpleOrderDto(Order order) { orderId = order.getId(); name = order.getMember().getName(); orderDate = order.getOrderDate(); orderStatus = order.getStatus(); address = order.getDelivery().getAddress(); } } 강의 자료와 같은 코드인 것 같은데 쿼리가 한 번씩 더 나가서 질문 드립니다. 처음에 order와 member를 join하는 쿼리 하나 실행 그 뒤로 member 조회 쿼리, delivery 조회 쿼리 하나씩 실행되는 건 이해가 됩니다. 그런데 그 뒤로 order 테이블에서 특정 delivery_id에 해당하는 걸 조회하는 쿼리가 하나씩 또 나갑니다. 이 부분이 왜 발생하는지 찾기가 힘들어서 질문을 남깁니다.
미해결
실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
CQS 패턴에 대해 질문이 있습니다. 커맨드(상태 변경)와 쿼리(조회)를 분리하는 패턴이라는 건 알겠습니다. 커맨드는 상태 변경에 대한 책임이 있고 조회에 대한 결과 반환의 책임이 있지 않다. 따라서 반환값을 반환하지 않는다. 쿼리는 조회에 대한 결과 반환의 책임이 있어서 조회 결과를 반환값으로 반환한다. 이 정도로 이해했습니다. 문제는 api인데, api도 커맨드 api, 쿼리 api 이런식으로 분리 하나요? /api/v2/members/{id} 경로의 updateMemberV2 라우트 핸들러는 상태를 변경하는 api니까 Member의 상태만 변경하고 response는 성공, 실패에 대한 HTTP 상태 응답값만 반환하나요? 조회에 대한 api는 조회 결과를 response dto로 내려주는 데에 이상하게 생각하지는 않습니다. 그런데 삭제, 등록, 업데이트 등의 커맨드 api..?는 보통 그냥 api 결과로 HTTP status code만 반환해주는 지가 궁금하네요. 지금도 삭제 api는 그냥 204 응답 코드로 반환해주도록 개발해왔었는데 이게 CQS 패턴인지 궁금하네요. 지금까지 별 생각없이 업데이트 api도 엔티티에 대한 업데이트를 수행하고 업데이트 된 Entity를 가지고 dto를 만들어서 http response를 내려주었는데 CQS 패턴을 생각하면 이런 api는 성공 실패만 반환하는게 맞는건가 싶어서요
해결됨
실습으로 배우는 선착순 이벤트 시스템
db에 등록도 잘 되었는지 확인해 보기 위해서 coupon 테이블 조회 해보았는데 [coupon_id], [user_id] 테스트 로직에서 userId 값은 단순히 for을 통해 0부터 순차적으로 받은 뒤 쿠폰 개수에 맞춰 userId 도 0~99 사이의 값이 들어 올 것이라 생각했는데 예상과 다르게 103 이라는 id가 들어왔습니다 이런 이유가 궁금합니다
해결됨
코드로 배우는 React 19 with 스프링부트 API서버
안녕하세요 Section2-5 강의 " Querydsl설정하기" 강의에서는 분명 repository 폴더 안에 search 폴더가 있었는데 강의를 듣다보니 강사님 화면에서는 search 폴더가 어느새 사라져있습니다.. 강의화면만 보고 어디있는지 알수가 없어서요ㅠ 어느 폴더로 이동해갔는지 알려주시면 감사하겠습니다. 그리고 강사님 화면을 보다가 발견했는데 config 폴더 아래에 RootConfig 파일이 새로 생겨있고, 깃 파일을 확인해보니 modelMapper를 사용하여 DTO 와 entity를 변환해주고 있는데, 앞에 강의에서 제가 듣기론 funciton을 이용해서 변환해주고 RootConfig 파일을 따로 만든 기억이 없습니다ㅠ 교육 뒷 부분에 새로 생기는 건가요?
미해결
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
[질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 스프링 3.0 이상으로 프로젝트를 만들어서 h2 데이터베이스도 그에 맞는 최신 버전으로 다운 받아 설치하였는데요. jdbc:h2:~/jpashop로 최초 한번 연결 후 (여기까진 성공) 끊고, jdbc:h2:tcp:// localhost/~/jpashop 으로 연결하면 이 오류가 뜹니다. h2 데이터베이스는 켜둔 상태입니다. spring: datasource: url: jdbc:h2:tcp://localhost/~/jpashop username: sa password: driver-class-name: org.h2.Driver
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 다른 오류들은 차근차근 해결했는데 h2도 정상 작동하고 다른 코드들도 다 확인하고 소스 코드 복붙도 해보고(오타 방지) 했으나 다음과 같이 오류가 발생합니다. 이 테스트 말고는 다 정상적으로 테스트가 돌아가는데 DB랑 연결이 안되는건지 문의드립니다. java.lang.IllegalStateException: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection at rrrr m._rrrr_m.repository.JdbcMemberRepository.findByName(JdbcMemberRepository.java:107) at rrrr m._rrrr_m.service.MemberService.validateDuplicateMember(MemberService.java:31) at rrrr m._rrrr_m.service.MemberService.join(MemberService.java:25) at rrrr m._rrrr_m.service.MemberServiceIntegrationTest.중복_회원_예외(MemberServiceIntegrationTest.java:46) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:84) at rrrr m._rrrr_m.repository.JdbcMemberRepository.getConnection(JdbcMemberRepository.java:113) at rrrr m._rrrr_m.repository.JdbcMemberRepository.findByName(JdbcMemberRepository.java:95) ... 6 more Caused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database may be already in use: "C:/Users/computer/test.mv.db". Possible solutions: close all other connection(s); use the server mode [90020-224] at org.h2.message.DbException.getJdbcSQLException(DbException.java:690) at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) at org.h2.message.DbException.get(DbException.java:212) at org.h2.mvstore.db.Store.convertMVStoreException(Store.java:165) at org.h2.mvstore.db.Store.<init>(Store.java:142) at org.h2.engine.Database.<init>(Database.java:326) at org.h2.engine.Engine.openSession(Engine.java:92) at org.h2.engine.Engine.openSession(Engine.java:222) at org.h2.engine.Engine.createSession(Engine.java:201) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:343) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:125) at org.h2.Driver.connect(Driver.java:59) at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:137) at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:360) at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461) at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550) at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:98) at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:160) at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:118) at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81) ... 8 more Caused by: org.h2.mvstore.MVStoreException: The file is locked: C:/Users/computer/test.mv.db [2.2.224/7] at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:996) at org.h2.mvstore.SingleFileStore.lockFileChannel(SingleFileStore.java:143) at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:117) at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:81) at org.h2.mvstore.MVStore.<init>(MVStore.java:286) at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2035) at org.h2.mvstore.db.Store.<init>(Store.java:133) ... 25 more 2024-06-14T23:13:01.731+09:00 INFO 18164 --- [9rrrr_m] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting... java.lang.IllegalStateException: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection at rrrr m._rrrr_m.repository.JdbcMemberRepository.findByName(JdbcMemberRepository.java:107) at rrrr m._rrrr_m.service.MemberService.validateDuplicateMember(MemberService.java:31) at rrrr m._rrrr_m.service.MemberService.join(MemberService.java:25) at rrrr m._rrrr_m.service.MemberServiceIntegrationTest.회원가입(MemberServiceIntegrationTest.java:29) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) at java.base/java.util.ArrayList.forEach(ArrayList.java:1511) Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:84) at rrrr m._rrrr_m.repository.JdbcMemberRepository.getConnection(JdbcMemberRepository.java:113) at rrrr m._rrrr_m.repository.JdbcMemberRepository.findByName(JdbcMemberRepository.java:95) ... 6 more Caused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database may be already in use: "C:/Users/computer/test.mv.db". Possible solutions: close all other connection(s); use the server mode [90020-224] at org.h2.message.DbException.getJdbcSQLException(DbException.java:690) at org.h2.message.DbException.getJdbcSQLException(DbException.java:489) at org.h2.message.DbException.get(DbException.java:212) at org.h2.mvstore.db.Store.convertMVStoreException(Store.java:165) at org.h2.mvstore.db.Store.<init>(Store.java:142) at org.h2.engine.Database.<init>(Database.java:326) at org.h2.engine.Engine.openSession(Engine.java:92) at org.h2.engine.Engine.openSession(Engine.java:222) at org.h2.engine.Engine.createSession(Engine.java:201) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:343) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:125) at org.h2.Driver.connect(Driver.java:59) at com.zaxxer.hikari.util.DriverDataSource.getConnection(DriverDataSource.java:137) at com.zaxxer.hikari.pool.PoolBase.newConnection(PoolBase.java:360) at com.zaxxer.hikari.pool.PoolBase.newPoolEntry(PoolBase.java:202) at com.zaxxer.hikari.pool.HikariPool.createPoolEntry(HikariPool.java:461) at com.zaxxer.hikari.pool.HikariPool.checkFailFast(HikariPool.java:550) at com.zaxxer.hikari.pool.HikariPool.<init>(HikariPool.java:98) at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:111) at org.springframework.jdbc.datasource.DataSourceUtils.fetchConnection(DataSourceUtils.java:160) at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:118) at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:81) ... 8 more Caused by: org.h2.mvstore.MVStoreException: The file is locked: C:/Users/computer/test.mv.db [2.2.224/7] at org.h2.mvstore.DataUtils.newMVStoreException(DataUtils.java:996) at org.h2.mvstore.SingleFileStore.lockFileChannel(SingleFileStore.java:143) at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:117) at org.h2.mvstore.SingleFileStore.open(SingleFileStore.java:81) at org.h2.mvstore.MVStore.<init>(MVStore.java:286) at org.h2.mvstore.MVStore$Builder.open(MVStore.java:2035) at org.h2.mvstore.db.Store.<init>(Store.java:133) ... 25 more Process finished with exit code -1
미해결
스프링 시큐리티 완전 정복 [6.x 개정판]
안녕하세요, 좋은 강의 제공해주셔서 감사합니다. FilterChainProxy 타입의 빈을 등록했는데 왜 CompositeFilterChainProxy 타입의 빈이 나오는 궁금합니다. 2. FilterChainProxy 도 여러 개가 존재할 수 있는 걸로 알고, SecurityFilterChain 도 여러 개 존재할 수 있는 것을 배웠습니다. 요청에 따라 FilterChainProxy 와 SecurityFilterChain 을 선택하는 부분에 대한 설명이 없는 것 같은데 맞나요? 이것까지 이해하는건 어렵긴 합니다..
미해결
스프링 시큐리티 완전 정복 [6.x 개정판]
rememberMe 의 흐름상 자동 로그인을 하는 것으로 보이는데 강의 들으면서 나름 커스텀하여 로그인 창이 뜰때 아이디만 저장하기 기능을 추가하고 싶은데 어떻게 해야할까요? 1. 로그인창 a. 처음에는 세션, 쿠키도 없으니 빈칸 로그인 성공이후 로그인 정보의 아이디값을 쿠키 에 넣는다. 로그아웃이후 쿠키가 남아있으면 아이디 란에 아이디를 넣는다. 를 하고 싶어용
미해결
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
저희 학습내용으로 보면 private Integer age; 는 테이블의 age int, 와 같아서 어노테이션 안써도 된다고 하셨는데 그럼 name 같은경우도 테이블의 그냥 컬럼명과 타입 똑같은 조건인데 왜 어노테이션쓰고 nullable = false, length = 25라고 해야하나요?? 그리고 한가지만 더 질문 드릴게요! 저는 서버 실행하면 콘솔쪽에 따로 쿼리가 안찍히던데 왜그럴까요?? 이상은 없는데 hibernate가 인식이 안되서 그런건지 콘솔에 쿼리가 안찍히네요ㅠㅠ
미해결
스프링 부트 - 핵심 원리와 활용
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용]말 그대로입니다. 띄어쓰기 두 번 규칙 잘 적용했는데 튕기는 현상이 발생합니다. 어떤 것이 문제일까요?? yml을 다음 아래와 같이 복붙했습니다. # my global config global: scrape_interval: 15s # Set the scrape interval to every 15 seconds. Default is every 1 minute. evaluation_interval: 15s # Evaluate rules every 15 seconds. The default is every 1 minute. # scrape_timeout is set to the global default (10s). # Alertmanager configuration alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 # Load rules once and periodically evaluate them according to the global 'evaluation_interval'. rule_files: # - "first_rules.yml" # - "second_rules.yml" # A scrape configuration containing exactly one endpoint to scrape: # Here it's Prometheus itself. scrape_configs: # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config. - job_name: 'prometheus' # metrics_path defaults to '/metrics' # scheme defaults to 'http'. static_configs: - targets: ['localhost:9090'] #추가 - job_name: "spring-actuator" metrics_path: '/actuator/prometheus' scrape_interval: 1s static_configs: - targets: [' localhost:8080 ']
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 회원등록은 되는데 회원목록누르면 white label 뜹니다 ㅜㅡ https://drive.google.com/file/d/19-IiuPizWAnOi4x22F5cRLRD_8pE-19F/view?usp=drive_link 링크입니다!
해결됨
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
게시글이 여러 댓글과 이미지를 가지고 있는 경우 게시글을 조회할 때 댓글과 이미지를 한번에 조회하는 것을 구현하고 있었습니다. @SpringBootTest @Transactional @Rollback(value = false) class PostRepositoryTest { @Autowired PostRepository postRepository; @Autowired UserRepository userRepository; @Autowired CommentRepository commentRepository; @Autowired ImageRepository imageRepository; @Autowired EntityManager em; @Test void 게시글조회시_댓글_이미지_함께_조회() { User user = User.builder() .username("tester") .password("password") .build(); userRepository.save(user); Post post = Post.builder() .title("테스트제목") .content("테스트내용") .build(); postRepository.save(post); Comment comment = Comment.builder() .post(post) .user(user) .content("댓글입니다.") .build(); commentRepository.save(comment); Image image = Image.builder() .image("/file/test") .post(post) .build(); imageRepository.save(image); em.flush(); em.clear(); Post findPost = postRepository.findByIdWithCommentsAndImages(post.getId()).get(); assertThat(findPost.getId()).isEqualTo(post.getId()); assertThat(findPost.getTitle()).isEqualTo("테스트제목"); System.out.println(findPost.getComments().get(0).getContent()); assertThat(findPost.getComments()).contains(comment); } } @Query("select p from Post p " + "left join fetch p.comments " + // "left join fetch p.images " + "where p.id = :id") Optional<Post> findByIdWithCommentsAndImages(@Param("id") Long id); 우선 OneToMany에서 fetch join을 2번하면 에러가 나더라구요 이 경우에 그럼 Comments와 Images를 따로 fetch join해서 가져와야하나요? 테스트에서 em.flush(); em.clear(); 하면 assertThat(findPost.getComments()).contains(comment);여기서 테스트 fail을 합니다. 영속성에서 제거가 돼서 그런 것 같은데 em.flush를 안하고 테스트를 해도 의미가 있는 건지 궁금합니다. 만약 em.flush를 해야지 의미 있다면 equals와 hashcode를 id값으로 오버라이딩을 해야하나요? 강의를 다 듣고 프로젝트에 적용해보려니까 여러군데에서 막히네요.. 개념이 부족한 거겠죠?
미해결
Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
신규 강의 업데이트 기다리다 너무 화가 나서 글을 올립니다. 강사님께 질문드리고 싶습니다 확실히 답변 주세요 도대체 강의 업데이트는 언제 됩니까? 올해 초부터 강의가 업데이트 된다고 답변하신지 벌써 반년이 다 지나갑니다 강사님은 강의를 업데이트 하실 생각이 진정으로 있으십니까? 저야 할인받고 구매하긴 했지만 강의가 한두푼 하는것도 아니고 8만8천원짜리 강의면 취준생들은 정말 고민의 고민 끝에 구매한 금액인데 이렇게 하시면 안되죠 물론 강의를 구입하기 전에 이전버전인걸 알고 구매했으니 제 잘못도 있는게 맞습니다. 하지만 강의 이미 녹화 다 끝났다고, 6월 되기 전에 올려주신다고 하셨잖아요 저는 강사님의 답변을 믿고 일단 기존 강의 다 들은 뒤에 업데이트 된 강의 들어야지 하는 생각으로 취준생의 입장에서 정말 거금을 들여 구매한건데 정말 화가 나네요. 이렇게 약속을 지키지 않으실걸 알았으면 굳이 이 강의 구매 안하고 타 사이트에 올라온 훨씬 더 저렴한 강의 구매했겠죠 저야 한달정도밖에 기다리지 않았지만 1월부터 기다린 수강생들은 뭐가 됩니까? 강의를 계속할 여력이 되지 않으시면 공지나 질문에 답변하실때 당분간은 좀 어려울 것 같다고 말씀하시거나 현재 진행사항을 솔직히 말씀하셔야하는것 아닌가요?
미해결
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
안내에 따라 --warning-mode all 넣고 gradlew build `--scan` 결과 현재 gradle-wrapper.properties 에 나오는 gradle 버전은 8.5입니다. The automatic loading of test framework implementation dependencies has been deprecated. This is scheduled to be removed in Gradle 9.0. Declare the desired test framework directly on the test suite or explicitly declare the test framework implementation dependencies on the test's runtime classpath. 이 문제를 해결해야 할 것 같은데, gradle 버전을 업그레이드 해야 할까요?