Inflearn Community Q&A
회원 가입 시 Insert 쿼리는 만들어지는데 디비에 저장이 안되는 경우
Written on
·
472
0
안녕하세요!
회원 가입 폼을 작성하고 Submit을 눌렀을 때 다음 로그가 뜨면서 insert 쿼리가 생성되는 것을 확인할 수 있는데, h2 database에는 값이 저장이 되지 않네요 ㅠㅠ 원인을 도무지 찾을 수 없어 질문 올립니다!
회원가입 폼 작성 시 로그입니다!
2021-08-27 04:10:11.140 INFO 9552 --- [nio-8080-exec-1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2021-08-27 04:10:11.141 INFO 9552 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2021-08-27 04:10:11.142 INFO 9552 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
2021-08-27 04:10:16.454 DEBUG 9552 --- [nio-8080-exec-2] org.hibernate.SQL :
select
member0_.member_id as member_i1_6_,
member0_.city as city2_6_,
member0_.street as street3_6_,
member0_.zipcode as zipcode4_6_,
member0_.name as name5_6_
from
user member0_
where
member0_.name=?
2021-08-27 04:10:16.462 INFO 9552 --- [nio-8080-exec-2] p6spy : #1630005016462 | took 2ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop
select member0_.member_id as member_i1_6_, member0_.city as city2_6_, member0_.street as street3_6_, member0_.zipcode as zipcode4_6_, member0_.name as name5_6_ from user member0_ where member0_.name=?
select member0_.member_id as member_i1_6_, member0_.city as city2_6_, member0_.street as street3_6_, member0_.zipcode as zipcode4_6_, member0_.name as name5_6_ from user member0_ where member0_.name='dd';
2021-08-27 04:10:16.470 DEBUG 9552 --- [nio-8080-exec-2] org.hibernate.SQL :
call next value for hibernate_sequence
2021-08-27 04:10:16.471 INFO 9552 --- [nio-8080-exec-2] p6spy : #1630005016471 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop
call next value for hibernate_sequence
call next value for hibernate_sequence;
2021-08-27 04:10:16.499 DEBUG 9552 --- [nio-8080-exec-2] org.hibernate.SQL :
insert
into
user
(city, street, zipcode, name, member_id)
values
(?, ?, ?, ?, ?)
2021-08-27 04:10:16.501 INFO 9552 --- [nio-8080-exec-2] p6spy : #1630005016501 | took 0ms | statement | connection 3| url jdbc:h2:tcp://localhost/~/jpashop
insert into user (city, street, zipcode, name, member_id) values (?, ?, ?, ?, ?)
insert into user (city, street, zipcode, name, member_id) values ('ddd', 'dd', 'dd', 'dd', 1);
2021-08-27 04:10:16.505 INFO 9552 --- [nio-8080-exec-2] p6spy : #1630005016505 | took 0ms | commit | connection 3| url jdbc:h2:tcp://localhost/~/jpashop
;
2021-08-27 04:10:16.513 INFO 9552 --- [nio-8080-exec-3] j.jpashop.Controller.HomeController : home controller
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
logging.level:
org.hibernate.SQL: debug
# org.hibernate.type: trace
MemberController파일입니다!
package jpabook.jpashop.Controller;
import jpabook.jpashop.domain.Address;
import jpabook.jpashop.domain.Member;
import jpabook.jpashop.service.MemberService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PostMapping;
import javax.validation.Valid;
import java.util.List;
@Controller
@RequiredArgsConstructor
public class MemberController {
private final MemberService memberService;
@GetMapping("/members/new")
public String createForm(Model model) { // model은 request, 즉 요청 객체를 의미한다.
model.addAttribute("memberForm", new MemberForm());
return "members/createMemberForm";
} // 화면 이동 시 MemberForm 빈 껍데기 객체를 가져온다. (createMemberForm.html에서 위에서 정의한 MemberForm 객체에 접근할 수 있음)
@PostMapping("/members/new")
public String create(@Valid MemberForm form, BindingResult result) {
// @Valid를 통해 javax의 validation 기능을 사용할 수 있다.(NotEmpty 등의 예외처리 가능!)
// MemberForm에 오류가 발생하면 result에 오류 사항이 저장됨
if (result.hasErrors()) {
return "members/createMemberForm"; }
Address address = new Address(form.getCity(), form.getStreet(),form.getZipcode());
Member member = new Member();
member.setName(form.getName());
member.setAddress(address);
memberService.join(member);
return "redirect:/";
}
@GetMapping("/members") // 스프링 MVC가 제공하는 모델 객체에 보관
public String list(Model model) {
List<Member> members = memberService.findMembers();
model.addAttribute("members", members);
return "members/memberList";
}
}
javaspring-bootspringJPA웹앱





