묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
오답 확인 부탁드립니다.
import java.time.Year; import java.util.*; class Main { public static int solution(int N, int M, int[] arr) { int answer = 0; for (int lt = 0; lt < N; lt++) { int sum = 0; int rt = lt; while (sum < M) { sum += arr[rt]; rt++; if (rt >= N) break; if (sum == M) { answer++; } } } return answer; } public static void main(String[] args){ Scanner kb = new Scanner(System.in); int N = kb.nextInt(); int M = kb.nextInt(); int[] arr = new int[N]; for (int i = 0; i < N; i++) { arr[i] = kb.nextInt(); } System.out.println(solution(N, M, arr)); } } 오답이 나와 확인해봤습니다.답이 1씩 낮아서 확인해보았는데(테스트의 N=100, M=100 지점), answer가 1씩 낮았습니다.답지와 제코드의 결과값을 비교해보았는데 너무 다른 양상이 나와 질문합니다. 답지answer: 18 lt: 50 rt: 83 sum: 100answer: 19 lt: 53 rt: 86 sum: 100answer: 20 lt: 55 rt: 88 sum: 100answer: 21 lt: 58 rt: 91 sum: 100answer: 22 lt: 60 rt: 93 sum: 100answer: 23 lt: 65 rt: 99 sum: 100 제 코드answer: 16 lt: 46 rt: 77 sum: 100answer: 17 lt: 49 rt: 83 sum: 100answer: 18 lt: 50 rt: 84 sum: 100answer: 19 lt: 53 rt: 87 sum: 100answer: 20 lt: 55 rt: 89 sum: 100answer: 21 lt: 58 rt: 92 sum: 100answer: 22 lt: 60 rt: 94 sum: 100 어디가 잘못된걸까요?
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
알림 아이콘redirect 인경우
안녕하세요redirect 의 경우를 제외시켜주셨는데 이게 가능한 이유가redirect 는A -> B로 리다이렉트 한다고 가정하면A에 담긴 모델을 B한테 그대로 가져가서 가능하다고 이해했는데맞을까요 ?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
그레이들 빌드 실패..
Execution failed for task ':JpashopApplication.main()'. > Process 'command '/Library/Java/JavaVirtualMachines/jdk1.8.0_321.jdk/Contents/Home/bin/java'' finished with non-zero exit value 1 * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.3/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 5s 3 actionable tasks: 1 executed, 2 up-to-date 4강 듣고있는데 롬복, 어노테이션 설정까지 똑같이 따라 햇는데.. 왜 안되는 걸까요
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
내용정리 화면은 어디서 볼수있나요?
화면에서 보여주시는 내용정리된 노트?는 어디서 볼수있나요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
더티채킹 이후 save 호출시 문제가 있을까요?
안녕하세요! 회사에서 mysql, Spring Data JPA를 사용하고있습니다.레거시 코드를 볼때마다 트랜잭션안에서 엔티티 속성값을 변경한 다음, 추가로 save 메서드를 호출해서 변경된 엔티티를 저장해주더라고요. 이러한 방식이 문제가 될 이유라면 뭐가있을지 궁금합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
getName의 name이 null 로 나오는 이유
메인 화면에서 회원 등록을 하면 name의 값이 null로 되면서 회원 목록에 등록이 되지 않습니다.디버깅 모드를 해도 name = null이라는 결과만 확인할 수 있었고 어디서 틀렸는지를 알 수가 없었습니다.왜 입력한 값이 null로 넘어갔을까요?https://drive.google.com/file/d/1aBZCTKQmP1D1DU2osyB14phEpqfS9bpX/view?usp=sharing코드 첨부된 드라이브 링크입니다 ㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
BeanCreationException 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (아니오)[질문 내용]여기에 질문 내용을 남겨주세요.스프링부트 버전 3.x 이상이고 Junit5를 사용해서 build.gradle에 useJUnitPlatform() 추가하고 테스트에서 @RunWith 대신 @ExtendWith를 사용했습니다.그리고 나머지는 자료 그대로 따라했는데 실행시켜보면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]: jakarta/xml/bind/JAXBException이런 에러가 뜨네요.뭐가 문제일까요..?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
21:59에 lazy 초기화 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]21:59초에 영상 내용을 따라 Lazy 초기화 후에 포스트맨을 검색해보았는데 출력이 되지 않고 오류가 떠서 질문드립니다.. 오류를 보아하니 무한루프가 돌아가는것 같은 느낌도 듭니다..오류내용java.lang.IllegalStateException: Cannot call sendError() after the response has been committed 2023-10-24 12:44:32.150 ERROR 46125 --- [nio-8080-exec-4] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.http.converter.HttpMessageNotWritableException: Could not write JSON: Infinite recursion (StackOverflowError); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Infinite recursion (StackOverflowError) (through reference chain: jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]->jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]->jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]->jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]->jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]->jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]->jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]->jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]->jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]->jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]->jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]->jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]->jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]->jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]->jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]->jpabook.jpashop.domain.Delivery["order"]->jpabook.jpashop.domain.Order["delivery"]-> initDbpackage jpabook.jpashop; import jpabook.jpashop.domain.*; import jpabook.jpashop.domain.Item.Book; import lombok.RequiredArgsConstructor; import org.springframework.stereotype.Component; import org.springframework.transaction.annotation.Transactional; import javax.annotation.PostConstruct; import javax.persistence.EntityManager; @Component @RequiredArgsConstructor public class InitDb { private final InitService initService; @PostConstruct public void init() { initService.dbInit1(); initService.dbInit2(); } @Component @Transactional @RequiredArgsConstructor static class InitService { private final EntityManager em; public void dbInit1() { Member member = createMember("userA", "서울", "1", "1111"); em.persist(member); Book book1 = createBook("JPA1 BOOK", 10000, 100); em.persist(book1); Book book2 = createBook("JPA2 BOOK", 20000, 100); em.persist(book2); OrderItem orderItem1 = OrderItem.createOrderItem(book1, 10000, 1); OrderItem orderItem2 = OrderItem.createOrderItem(book2, 20000, 2); Order order = Order.createOrder(member, createDelivery(member), orderItem1, orderItem2); em.persist(order); } public void dbInit2() { Member member = createMember("userB", "진주", "2", "2222"); em.persist(member); Book book1 = createBook("SPRING1 BOOK", 20000, 200); em.persist(book1); Book book2 = createBook("SPRING2 BOOK", 40000, 300); em.persist(book2); Delivery delivery = createDelivery(member); OrderItem orderItem1 = OrderItem.createOrderItem(book1, 20000, 3); OrderItem orderItem2 = OrderItem.createOrderItem(book2, 40000, 4); Order order = Order.createOrder(member, delivery, orderItem1, orderItem2); em.persist(order); } private Member createMember(String name, String city, String street, String zipcode) { Member member = new Member(); member.setName(name); member.setAddress(new Address(city, street, zipcode)); return member; } private Book createBook(String name, int price, int stockQuantity) { Book book = new Book(); book.setName(name); book.setPrice(price); book.setStockQuantity(stockQuantity); return book; } private Delivery createDelivery(Member member) { Delivery delivery = new Delivery(); delivery.setAddress(member.getAddress()); return delivery; } } } OrderSimpleApiControllerpackage jpabook.jpashop.api; import jpabook.jpashop.domain.Order; import jpabook.jpashop.repository.OrderRepository; import jpabook.jpashop.repository.OrderSearch; import lombok.RequiredArgsConstructor; import org.aspectj.weaver.ast.Or; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * XToOne * Order * Order -> Member * Order -> Delivery */ @RestController @RequiredArgsConstructor public class OrderSimpleApiController { private final OrderRepository orderRepository; @GetMapping("/api/v1/simple-orders") public List<Order> ordersV1(){ List<Order> all = orderRepository.findAllByString(new OrderSearch()); for (Order order : all) { order.getMember().getName(); //Lazy 강제 초기화 order.getDelivery().getAddress(); //Lazy 강제 초기화 } return all; } } JpashopApplicationpackage jpabook.jpashop; import com.fasterxml.jackson.datatype.hibernate5.Hibernate5Module; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.annotation.Bean; @SpringBootApplication public class JpashopApplication { public static void main(String[] args) { SpringApplication.run(JpashopApplication.class, args); } @Bean Hibernate5Module hibernate5Module(){ Hibernate5Module hibernate5Module = new Hibernate5Module(); return hibernate5Module; } }코드도 같이 올렸습니다.. 무엇이 다른건지 잘 모르겠습니다..
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
h2 버그인가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]저는 ddl auto를 create로 하고시퀀스 전략 했을 때,persist 안하고 봐도 시퀀스가 그냥 1,증가가 50입니다..그 다음 persist를 한번 해 봤더니,next value for member_seq를 한번만 호출했습니다. 근데 persist 2번 이상하면,next value for member_seq를 2번 호출합니다.시퀀스의 현재값도 101번이 됩니다.뭔가 JPA쪽에서 놓친건가요..?아니면 제가 뭔가 강의에서 놓친건가요?그렇게 현재값 101번 만든 후,이번엔 dll.auto를 none으로 해서다시 돌려봤더니 다서 persist 해서 테이블에 저장해서 나온 건 52부터 찍힙니다. persist 안한 것 persist 1번next value for member_seq 한번 호출 persist 2번 호출next value for member_seq가 두번 호출 됍니다. 그런데.. 이 상태에서 ddl.auto를 none으로 하고 다시 한번 로직을 실행해 봤더니.. 어.. 제 생각이 맞다면 101부터 id가 매겨져야 할 것 같은데.. 어.. public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try{ Member member1 = new Member(); member1.setUsername("A"); Member member2 = new Member(); member2.setUsername("B"); Member member3 = new Member(); member3.setUsername("C"); em.persist(member1); em.persist(member2); // em.persist(member3); tx.commit(); } catch (Exception e){ tx.rollback(); } finally { em.close(); } emf.close(); } 사용 버전<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>jpa-basic</groupId> <artifactId>ex-hello-jpa</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>17</maven.compiler.source> <maven.compiler.target>17</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>org.hibernate.orm</groupId> <artifactId>hibernate-core</artifactId> <version>6.2.9.Final</version> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>2.1.214</version> </dependency> </dependencies> </project>
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
@Rollback(value = false)을 설정해야 sql문이 로깅되나요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]@Test @Transactional @Rollback(value = false) public void testMember() throws Exception { //given System.out.println("given"); Member member = new Member(); member.setUsername("memberA"); //when System.out.println("when"); Long saveId = memberRepository.save(member); Member findMember = memberRepository.find(saveId); //then System.out.println("then"); Assertions.assertThat(findMember.getId()).isEqualTo(member.getId()); Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); Assertions.assertThat(findMember).isEqualTo(member); }위의 코드에서 @Rollback(value = false)없이 돌렸을때,given when 2023-10-23T22:09:28.313+09:00 DEBUG 13164 --- [ main] org.hibernate.SQL : select next value for member_seq then @Rollback(value = false)을 넣고 돌렸을 때,given when 2023-10-23T22:10:13.319+09:00 DEBUG 18292 --- [ main] org.hibernate.SQL : select next value for member_seq then 2023-10-23T22:10:13.456+09:00 DEBUG 18292 --- [ main] org.hibernate.SQL : insert into member (username,id) values (?,?) 위와 같이 출력됩니다.이 현상에 대해 제가 생각하는 원인은 다음과 같습니다.트랜잭션이 커밋될 때 (특정 상황 제외), 영속성 컨텍스트의 sql문들이 DB로 전송되므로, @Rollback(value = false)없는 상태에선 저장된 sql문들이 전달되지 않고 메모리에서 삭제되는 것으로 추론하고 있습니다.저의 생각이 맞는지 궁금합니다.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
category item 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]다대다 연관관계가 안좋다해서 중간 엔티티로 categoryitem을 만들어서 해보고있는데 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.AnnotationException: mappedBy reference an unknown target entity property: Shop.ShopingMall.domain.Category.category_item in Shop.ShopingMall.domain.CategoryItem.categories 이러한 오류가 떴습니다.. 해결방법이 뭘까요?? 코드는 다음과 같습니다 package Shop.ShopingMall.domain; import lombok.Getter; import lombok.Setter; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter public class Category { @Id @GeneratedValue @Column(name = "category_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "category_item_id") private CategoryItem categoryItem; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "parent_id") private Category parent; @OneToMany(mappedBy = "parent") private List<Category> child = new ArrayList<>(); } package Shop.ShopingMall.domain; import Shop.ShopingMall.domain.Item.Item; import lombok.Getter; import lombok.Setter; import javax.persistence.*; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter public class CategoryItem { @Id @GeneratedValue @Column(name = "category_item_id") private Long id; @OneToMany(mappedBy = "category_item") private List<Category> categories = new ArrayList<>(); @OneToMany(mappedBy = "category_item") private List<Item> items = new ArrayList<>(); } package Shop.ShopingMall.domain.Item; import Shop.ShopingMall.domain.CategoryItem; import lombok.Getter; import lombok.Setter; import javax.persistence.*; @Entity @Getter @Setter public class Item { @Id @GeneratedValue @Column(name = "item_id") private Long id; private String name; private int price; private int stockQuantity; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "category_item_id") private CategoryItem categoryItem; }
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
일대일 관계에서의 연관관계의 주인
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]연관관계의 주인을 외래키에 두라고 하신말씀은 알겠습니다.그것이 일대다 인경우는 자동차와 바퀴의 예를 들면서 말씀해주셔서 알겠는데 1대1관계의 경우 어느쪽이 외래키라고 할수 있는걸까요? 오더와 딜리버리의 경우에 오더가 관계의 주인이 되었는데 왜? 라고 물으면 잘 모르겠습니다만약에 예를들어 유저와 유저정보간의 관계가 있다면 그경우의 연관관계의 주인은 어떤것일까요?기준을 좀만 더 정확하게 알려주셨으면 좋겠습니다...
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
beforeEach에 객체를 생성하면....
service에서 private final MemberRepository memberRepository = new MemoryMemberRepository();위 코드를 보면 리포지토리 안에 store가 static으로 되어있으니 당장은 상관없으나 혹시 모르니 다른 객체를 사용하지 않도록 private final MemberRepository memberRepository; public MemberService(MemberRepository memberRepository) { this.memberRepository = memberRepository; }위와 같이 service에서 리포지토리를 주입 받는다라고 했는데요 근데 테스트케이스에서@BeforeEach public void beforeEach() { memberRepository = new MemoryMemberRepository(); service = new MemberService(memberRepository); }BeforeEach에 이런식으로 코드를 작성하면 리포지토리를 주입 받기는 했지만 결국 케이스별로 다른 리포지토리 인스턴스를 주입 받은거 아닌가요?
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
int i = 0
보통 for loop 작성할 때 int i = 0;으로 주로 0으로 고정시키나요? 어떨 때는 1로 했었던 것 같은데 헷갈리네요 ㅜㅜ
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
result 변수
안녕하세요,전달값이 개인적으로 너무 어려운 한사람인데요 ....6:39 에서 int result = 1; 로 당연하듯이 변수를 정해서 써야 하는 것 같은데 아직 제 수준에서 그게 잘 안돼요 .... 만약에 문제가 덧셈에 관한 거였으면 제 데이터상int result = 0; 으로 하면서 했던 것 같은데 혹시 result 변수에 대해서 다시 한번 설명 가능할까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
BindingResult에 관해
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 잘 듣고 있습니다! 학습을 위해 예제 코드를 조금 응용해서 TODO 앱를 만들어보고 있는데 의도한 기능대로 작동이 안 됩니다. 강의 내용과는 조금 방향이 다르지만 BindingResult 관련 질문이기도 하고 하루종일 해봐도 모르겠어서 질문 올립니다. 강의 예제의 [회원 가입] 폼에서 이름을 비워두고 제출한 경우 @Valid 검증 오류가 발생 하여 return "members/createMemberForm" 되고, View에서 <p th:if="${#fields.hasErrors('name')}" th:errors="*{name}"><p>가 삽입되면서 MemberForm의 @NotEmpty 에러 메세지가 출력되는 기능을 조금 바꿔서 해 수정 기능에 적용해 보려고 했습니다. 의도한 기능은 이렇습니다. (코드는 밑에 있습니다)할 일(task) 수정을 누르면 @GetMapping("/tasks/{taskId}/edit")와 매핑된 메서드가 전달된 파라미터의 taskId로 할일 객체를 찾아 TaskForm(할일 Form 객체)에 값을 세팅합니다. 그리고 이 TaskForm 객체를 Model에 "form"이라는 이름으로 값을 담아 전달합니다.View(할일 수정 폼)에서 수정하고자 하는 할일의 현재 name 값, priority 값를 보여줍니다. (수정을 위해 현재 값을 표시해줌)수정 폼을 채우고 제출을 누르면 @PostMapping("/tasks/{taskId}/edit")에 매핑됩니다. 만약 검증에 오류가 있는 경우 return "task/editTaskForm";를 합니다. 즉 editTaskForm.html 문서를 엽니다. 문제 상황 :그런데 editTaskForm.html 파싱에 실패합니다. 해당 Task의 현재 값을 미리보기 해주려면 ${form.name}을 참고해야 하는데 form이 넘어가지 않아서 인 것 같습니다. 그래서 @SessionAttributes("form")로 세션에 저장해주었습니다(스프링 2.7입니다).2. 이제 파싱은 되고 해당 Task의 현재 값 미리보기도 됩니다. 그런데 여전히 <p> 태그가 생성되지 않아서 오류 메세지도 출력이 안 됩니다. BindingResult가 날아간 것 같습니다.3.방법을 바꿔서 View를 바로 여는 게 아니라 @GetMapping으로 리다이렉트를 해보았는데 역시 Model이 초기화되면서 BindingResult가 날아가는 것 같습니다 ㅠㅠ검색해보니 RedirectAttributes를 써야 한다는데 저는 강의와 똑같이 스프링 2.7을 쓰고 있는데 3.1 미만 버전에서는 GET 파라미터로 전달하는 것 외엔 방법이 없을까요? @Controller @RequiredArgsConstructor @SessionAttributes("form") public class TaskController { private final TaskService taskService; @ModelAttribute("form") public TaskForm getTaskFrom() { return new TaskForm(); } @GetMapping("/tasks/{taskId}/edit") public String editTaskForm(@PathVariable Long taskId, Model model) { Task task = taskService.findOne(taskId); TaskForm form = new TaskForm(); form.setName(task.getName()); form.setPriority(task.getPriority()); model.addAttribute("form", form); return "task/editTaskForm"; } @PostMapping("/tasks/{taskId}/edit") public String editTask(@PathVariable Long taskId, @Valid TaskForm form, BindingResult result, SessionStatus sessionStatus) { if (result.hasErrors()) { return "task/editTaskForm"; } taskService.editTask(taskId, form.getName(), form.getPriority()); sessionStatus.setComplete(); return "redirect:/tasks"; } } JPA 활용 2편까지도 들었고 MVC 1까지도 들었는데.. MVC 2의 BindingResult 강의를 듣고 다시 해보는게 좋을까요?하지만 너무 해결하고 싶습니다.........🥺 어느 부분을 체크해보면 좋을까요?
-
미해결실전! Querydsl
정렬 조건에 대해 질문이 있습니다.
public enum Tier { CHALLENGER("challenger"), GRANDMASTER("grandmaster"), MASTER("master"), DIAMOND("diamond"), EMERALD("emerald"), PLATINUM("platinum"), GOLD("gold"), SILVER("silver"), BRONZE("bronze"), IRON("iron"), NULL("null"); private final String tier; Tier(String tier) { this.tier = tier; } }이런 enum을 필드로 가지고 있는 entity가 있습니다.public class MyEntity { ... @NotNull @Column(name = "queue", columnDefinition = "VARCHAR(20)") @Enumerated(EnumType.STRING) private Tier queue; ... } 그런데 querydsl로 이 enum기준으로 custom sort를 할 경우에는 어떻게 해야하나요?예를 들면 enum Tier에 적혀있는 순서대로 CHALLENGER > GRANDMASTER > ... > NULL 순서대로 정렬할 때 어떻게 해야하는지 궁금합니다!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
오류가 떴는데 코드를 봐도 잘 모르겠네요..
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]이유를 잘 모르겠네요...
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
Integer.MIN_VALUE
max = Integer.MIN_VALUE로 초기화해주는 이유가 따로 있나요??
-
미해결스프링 시큐리티 OAuth2
Session id가 인가 코드와 access token을 교환하는 도중에 변경됩니다.
안녕하세요. 강의 잘 듣고 있습니다.제목에서처럼, session id가 access token을 교환하는 일련의 과정 중에 변경되어 다음과 같은 오류가 브라우저 상에서 보여집니다.해당 에러 메시지를 내뱉는 로직이 OAuth2LoginAuthenticationFilter 클래스의 attemptAuthentication 메소드에 있음을 확인하였습니다. 제가 찾은 원인은 OAuth2AuthorizationRequestRedirectFilter에서 AuthorizationRequest의 저장까지는 성공적인데, OAuth2LoginAuthenticationFilter에서 AuthorizationRequest를 Repository에서 꺼내오려고 시도할 때 바뀐 session id값 때문에 이전의 AuthorizationRequest 객체를 가져오지 못하고 null을 반환하는 것이었습니다. 이렇게 session id가 바뀌는 원인이 무엇인지 알려주시면 감사하겠습니다 ㅠㅠ