findOne
408
18 asked
1. 강의 내용과 관련된 질문인가요? (예)
2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)
3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)
[질문 내용]
findAll은 화면에 뿌리는것 까지 했는데
Answer 4
0
어찌하다보니까. 아래처럼 하니까 되네요. 어렵다. 소뒷발로 쥐잡음
@PostMapping(value = "/books/Search_id1")
public String searchIdFormList(BookMemberForm form,Model model) {
BookMember bookMemberUi = new BookMember();
Optional<BookMember> bookMember = bookMagService.findOne(form.getBookId());
bookMemberUi = bookMember.get();
model.addAttribute("member", bookMemberUi);
return "bookMember/bookMemberSingle";
}
0
친절한 답변 감사합니다. 근데 계속해서 질문하게되네요. 미천한 공부라...ㅠ.ㅠ
[[[[[ BookMagController ]]]]]
@PostMapping(value = "/books/Search_id1")
public String searchIdFormList(BookMemberForm form,Model model) {
System.out.println("#### BookMagController @PostMapping ===> bookId: " + form.getBookId());
model.addAttribute("members", bookMagService.findOne(form.getBookId()));
System.out.println("]]]]]] #### BookMagController bookMagService model : " + model);
return "bookMember/bookMemberSingle";
}
[[[[ BookMagService.java ]]]]]]
public Optional<BookMember> findOne(Long memberId) {
System.out.println("#### BookMagService ===> bookId: " + memberId);
return bookMemberRepository.findByBookId(memberId);
}
[[[[[ bookMemberSingle.html ]]]]]]
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<body>
<div class="container">
<div>
<table>
<thead>
<tr>
<th>도서ID</th>
<th> 도서명 </th>
<th> 도서십진분류 </th>
<th> 사업자등록번호 </th>
<th> 출판사 </th>
<th> 저자id </th>
<th> 저자명 </th>
<th> 출판일 </th>
<th> 가격 </th>
</tr>
</thead>
<tbody>
<tr th:each="member : ${members}">
<td th:text="${member.bookId}"></td>
<td th:text="${member.bookName}"></td>
<td th:text="${member.book_kdc}"></td>
<td th:text="${member.book_publisher_business_no}"></td>
<td th:text="${member.book_publisher}"></td>
<td th:text="${member.book_author_id}"></td>
<td th:text="${member.book_author}"></td>
<td th:text="${member.book_make_date}"></td>
<td th:text="${member.book_price}"></td>
</tr>
</tbody>
</table>
</div>
</div> <!-- /container -->
</body>
</html>
상기처럼했는데 아래와같은 오류가 나네요? 어떻게 해야할지 감이 안옵니다.
#### BookMagController @PostMapping ===> bookId: 1001
#### BookMagService ===> bookId: 1001
Hibernate: select bookmember0_.book_id as book_id1_0_, bookmember0_.book_name as book_nam2_0_,
bookmember0_.book_author as book_aut3_0_, bookmember0_.book_author_id as book_aut4_0_,
bookmember0_.book_kdc as book_kdc5_0_, bookmember0_.book_make_date as book_mak6_0_,
bookmember0_.book_price as book_pri7_0_, bookmember0_.book_publisher as book_pub8_0_,
bookmember0_.book_publisher_business_no as book_pub9_0_ from book_mag bookmember0_
where bookmember0_.book_id=?
]]]]]] #### BookMagController bookMagService model : {bookMemberForm=book.booksmag.controller.BookMemberForm@52983985,
org.springframework.validation.BindingResult.bookMemberForm=
org.springframework.validation.BeanPropertyBindingResult: 0 errors,
members=Optional[book.booksmag.domain.BookMember@3b5ecc69]}
2022-06-30 10:57:56.885 ERROR 32896 --- [nio-8080-exec-4] org.thymeleaf.TemplateEngine :
[THYMELEAF][http-nio-8080-exec-4] Exception processing template "bookMember/bookMemberSingle":
Exception evaluating SpringEL expression: "member.bookId" (template: "bookMember/bookMemberSingle" - line 22, col 21)
org.thymeleaf.exceptions.TemplateProcessingException: Exception evaluating SpringEL expression: "member.bookId" (template: "bookMember/bookMemberSingle" - line 22, col 21)
rg.springframework.expression.spel.SpelEvaluationException: EL1008E: Property or field 'bookId' cannot be found on object of type 'java.util.Optional'
- maybe not public or not valid?
타입이 안맞다는것 같은데요?
cannot be found on object of type 'java.util.Optional'
0
안녕하세요. ktwmomo님, 공식 서포터즈 OMG입니다.
본 강의의 목표는 아래의 강의소개 페이지에도 나와 있듯이 빠르게 스프링 웹 애플리케이션 개발에 대해 익히는 것입니다. 영한님께서 생각하시기에 전체 조회만으로도 충분히 강의 목표에 도달하는 기능 개발이라 생각하셔서 findOne(특정 회원 조회)는 미진행 하신 것 같습니다.
미진행된 부분은 본 강의 내용과 코드를 토대로 구현해보시면 실력 향상에 도움이 되리라 생각합니다.
감사합니다.
0
@GetMapping(value = "/books/Search_id")
public String searchIdForm() {
return "bookMember/searchIdBookMemberForm";
}
@@@ searchIdBookMemberForm.html
<!DOCTYPE html>
<html xmlns:th="http://www.thymeleaf.org">
<body>
<div class="container">
<h2> 도서 ID 조회 </h2>
<form action="/books/Search_id1" method="post">
<div class="form-group">
<label for="book_id">도서ID:</label>
<input type="text" id="book_id" name="book_id" maxlength="13" placeholder="도서ID를 입력하세요">
</div>
<button type="submit">도서ID조회</button>
</form>
</div> <!-- /container -->
</body>
</html>
@PostMapping(value = "/books/Search_id1")
public String searchIdFormlist(BookMemberForm form,Model model) {
BookMember bookMember = new BookMember();
bookMagService.findOne(bookMember.getBook_id());
===> 이곳에서 값을 어떻게 받아서 화면에 전달 하나요?
model.addAttribute("members", bookMember);
return "bookMember/bookMemberSingle";
}
@@@@ bookMemberSingle.html
<!DOCTYPE HTML>
<html xmlns:th="http://www.thymeleaf.org">
<body>
<div class="container">
<div>
<table>
<thead>
<tr>
<th>도서ID</th>
<th> 도서명 </th>
<th> 도서십진분류 </th>
<th> 사업자등록번호 </th>
<th> 출판사 </th>
<th> 저자id </th>
<th> 저자명 </th>
<th> 출판일 </th>
<th> 가격 </th>
</tr>
</thead>
<tbody>
<tr th:text="member : ${members}">
<td th:text="${member.book_id}"></td>
<td th:text="${member.bookName}"></td>
<td th:text="${member.book_kdc}"></td>
<td th:text="${member.book_publisher_business_no}"></td>
<td th:text="${member.book_publisher}"></td>
<td th:text="${member.book_author_id}"></td>
<td th:text="${member.book_author}"></td>
<td th:text="${member.book_make_date}"></td>
<td th:text="${member.book_price}"></td>
</tr>
</tbody>
</table>
</div>
</div> <!-- /container -->
</body>
</html>
0
public String searchIdFormlist(BookMemberForm form,Model model) {
BookMember bookMember = new BookMember();
bookMagService.findOne(bookMember.getBook_id());
==
findOn으로 하나의 회원을 받는다고 한다면,
BookMemberForm에서 해당 회원의 Id가 포함되어 있지 않을까요?
bookMagService.findOne(bookMember.getBook_id());
바로 윗 라인에서 생성한 인스턴스에서 id를 가져오는게 아닌,
BookMemberForm form
파라미터로 받아서 처리해야 될 것 같네요
bookMagService.findOne(form.getBook_id())
이후 코드는
bookService에서 찾아온 회원을 받아서 모델로 넘기면 될 거같구요.
model.addAttribute("member", bookMagService.findOne(form.getBook_id()));
특정 회원 한명의 데이터니 s는 빼면 될거같네요.
결과적으로 3줄자리 코드를 위와 같이 한줄로 작성해도 됩니다.
..
0
76
2
Unused property.....
0
99
2
project JDK is misconfigured
0
132
2
외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석
0
83
2
단위/통합 테스트 버전충돌 문제
0
91
2
❗️springboot 4.0.2 버전 aspectj dependency 설정❗️
0
230
1
왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?
0
103
2
윈도우 build test오류 질문
1
102
2
테스트 관련 공부에 대한 조언을 얻고 싶습니다
0
99
2
테스트 실행 시 에러 질문
0
291
1
name을 통한 비교와 객체를 통한 비교
0
77
1
빌드 후 libs 없음
1
129
1
윈도우 gradlew.bat 에러
0
167
1
@PostMapping("/members/new")가 동작하지 않습니다
0
88
1
java static class와 kotlin class
0
79
1
스프링 DB연결
0
126
1
소요 시간
0
85
2
ddl.sql에 빨간 밑줄
1
101
2
welcome page 에러
0
182
3
잘 모르겠습니다.
0
164
2
fail을 똑같이 쳤는데 오류가 발생해요
0
156
2
index.html Welcome page
0
121
1
프로젝트 gradle-groovy ?
0
369
1
테스트코드 메서드명 한글
0
202
2

