inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

QueryDsl의 ON절에 대해 질문드립니다.

미해결

실전! Querydsl

SQL의 ON절과 QueryDsl의 ON절 간에 차이가 있어보여 질문드립니다. SQL의 ON절에서는 테이블과 테이블 간에 어떤 컬럼을 기준으로 조인될 것인가를 명시하는 기능을 하는데 비해, QueryDsl에서는 join메서드가 그 기능을 포함하고 on메서드가 마치 sql의 where절의 역할을 하는 것(그렇기 때문에 QueryDsl에서는 SQL과 달리 on 메서드와 where 메서드를 함께 사용할 수 없음)으로 보이는데 맞을까요?

  • java
  • jpa
Jaesang Yoon 댓글 1 좋아요 0 조회수 262

entity manager와 스프링 빈

미해결

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] @Repository public class MemberRepository { @PersistenceContext private EntityManager em; .... } 위 코드에서 질문이 하나 있는데요, EntityManagerFactory가 스프링 빈으로 디폴트로 등록이 되고 위 em에다가 entitymanager를 만들어서 주입을 해 주는 것인지, 아니면 EntityManager가 스프링 빈으로 아예 등록이 되고 저 위에다가 주입이 되는 것인지(아닐 것 같기는 합니다!)궁금합니다

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
blackjack_96 댓글 1 좋아요 0 조회수 211

소스코드 컴파일 오류

해결됨

입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기

컴파일시 오류가 발생합니다. 포트가 사용되고 있다고 하면서 웹서버 구동이 안되는데 포트를 바꿔봐도 오류가 발생합니다. 깃허브에서 소스코드는 받았습니다. 해결방법 좀 부탁드립니다. AI 답변이 달렸길래 추가 내용을 적습니다. 포트도 변경해봤고, 사용중인 포트가 없는것도 확인했습니다. 오류 코드는 다음과 같습니다. *************************** APPLICATION FAILED TO START *************************** Description: Web server failed to start. Port 8080 was already in use. Action: Identify and stop the process that's listening on port 8080 or configure this application to listen on another port. Process finished with exit code 1

  • kotlin
  • mysql
  • docker
  • spring-boot
  • jpa
박경서 댓글 2 좋아요 0 조회수 238

세션5 상품 목록 컴포넌트 처리

미해결

코드로 배우는 React 19 with 스프링부트 API서버

import axios from "axios" import { API_SERVER_HOST } from "./todoApi" // api server host const host = `${API_SERVER_HOST}/api/products` // 외부 보낼것 만들기 비동기 통신 export const postAdd = async (product) => { // 객체지정 const header = {headers: {'Content-Type':'multipart/form-data'}} // product와 header 같이 보내기 const res = await axios.post(`${host}/`, product, header) return res.data } export const getList = async (pageParam) => { try{ const {page, size} = pageParam const res = await axios.get(`${host}/list`, {params: {page:page, size:size}}) return res.data } catch (error) { console.error('Error in getList:', error); throw error; } } productsApi.js 위 코드이고 import React, { useState, useEffect } from 'react'; import useCustomMove from '../../hooks/useCustomMove'; import { API_SERVER_HOST } from '../../api/todoApi'; import { getList } from '../../api/productsApi'; const initState = { dtoList: [], pageNumList: [], pageRequestDTO: null, prev: false, next: false, prevPage: 0, nextPage: 0, current: 0 } // 서버에 주소가 바뀌면 상수값만 바꿔줄려고 선언한것 const host = API_SERVER_HOST function ListComponent(props) { // 커스텀 훅 사용해서 이동 refresh: 갱신 const {moveToList, moveToRead, page, size, refresh} = useCustomMove() // 목록 데이터 가져오기 const [serverData, setServerData] = useState(initState) // 데이터 가져오기 const [fetching, setFetching] = useState(false) useEffect(() => { setFetching(true) // 데이터 가져오는 중 자동으로 처리되기 때문에 // 서버데이터가 처리가 되면 getList({page,size}).then(data => { console.log("data>>>>>>>", data); setFetching(false) setServerData(data) }) }, [page,size,refresh]); return ( <div className="border-2 border-blue-100 mt-10 mr-2 ml-2"> {/* fetching일때는 FetchingModal 호출하고 그렇지 않으면 아무것도 안보여준다. */} {fetching? <FetchingModal/> :<></>} <div className="flex flex-wrap mx-auto p-6"> {serverData.dtoList.map(product => <div key= {product.pno} className="w-1/2 p-1 rounded shadow-md border-2" onClick={() => moveToRead(product.pno)} /* 링크 만들어주고 썸네일 이미지 만들어서 보여주는 기능 */ > <div className="flex flex-col h-full"> <div className="font-extrabold text-2xl p-2 w-full ">{product.pno}</div> <div className="text-1xl m-1 p-2 w-full flex flex-col"> <div className="w-full overflow-hidden "> <img alt="product" className="m-auto rounded-md w-60" src={`${host}/api/products/view/s_${product.uploadFileNames[0]}`} /> </div> <div className="bottom-0 font-extrabold bg-white"> <div className="text-center p-1"> 이름: {product.pname} </div> <div className="text-center p-1"> 가격: {product.price} </div> </div> </div> </div> </div> )} </div> </div> ); } export default ListComponent; ListComponent.js 파일인데 import React from 'react'; import ListComponent from '../../components/products/ListComponent'; function ListPage(props) { return ( <div className="p-4 w-full bg-white"> <div className="text-3xl font-extrabold"> Products List Page </div> <ListComponent/> </div> ); } export default ListPage; ListPage.js 파일입니다 터미널에 에러도 뜨지 않고 서버에서 데이터를 못가져오는데 postman으로 서버 테스트를 했을때는 잘 되는데요 서버에서 클라이언트로 연동되는 부분에서 문제가 생긴건지 list를 가져오지를 못하고 있습니다 ㅠ 왜 그런건지 알 수 있을까요 ㅠ 오타도 아닌거 같고..

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
jkshin 댓글 3 좋아요 0 조회수 320

변경 감지 메커니즘에서 4. flush, 5. commit 의미

해결됨

자바 ORM 표준 JPA 프로그래밍 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 사진에서 4. flush, 5. commit은 무엇을 의미하는 것인지 궁금합니다.

  • java
  • jpa
박호정 댓글 1 좋아요 0 조회수 317

안녕하세요 강의내용을 복습하다가 질문이 생겼습니다

미해결

스프링 프레임워크는 내 손에 [스프2탄]

list.jsp 의 form안의 인풋타입히든의 으로 값을 넘길떄 왜 위에 url에 표시가 되는걸까요.원래 직접 action에 입력을 안해주면 값은 넘어가도 위에 url에 표시는 안되야하는거 아닌가요? <input type="hidden" id="page" name="page" value="${pageMaker.cri.page}" /> <input type="hidden" name="perPageNum" value="${pageMaker.cri.perPageNum}" /> <input type="hidden" name="type" value="${pageMaker.cri.type}" /> <input type="hidden" name="keyword" value="${pageMaker.cri.keyword}" /> <input type="hidden" name="memID" value="${mvo.memID}"/>

  • spring
  • jquery
  • mvc
  • jpa
  • spring-security
성문 댓글 1 좋아요 0 조회수 297

Transactional 과 Lazy Loading

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

안녕하세요 강의 잘 듣고 있습니다. 다름이 아니라 프로젝트를 업그레이드 하는 과정에서 오류가 생겨 질문 드립니다. package ShopProject.myShopProject.Domain; import ShopProject.myShopProject.Domain.Item.Item; import ShopProject.myShopProject.Domain.Order.Order; import jakarta.persistence.*; import jakarta.validation.constraints.NotEmpty; import jakarta.validation.constraints.NotNull; import lombok.Data; import lombok.Getter; import lombok.Setter; import java.util.ArrayList; import java.util.List; @Entity @Getter @Setter public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String name; @Embedded private Address address; @OneToMany(mappedBy = "member",cascade = CascadeType.REMOVE) private List<Order> orders = new ArrayList<>(); private String loginId; private String password; @OneToMany(mappedBy = "member") private List<LikedItem> likedItems = new ArrayList<>(); } package ShopProject.myShopProject.Domain; import ShopProject.myShopProject.Domain.Item.Item; import jakarta.persistence.*; import lombok.Getter; import lombok.Setter; @Entity @Getter @Setter public class LikedItem { @Id @GeneratedValue @Column(name = "likedItem_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "member_id") private Member member; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "item_id") private Item item; } 보시는 것처럼 멤버와 좋아요 상품은 Lazy 관계에 있습니다. OneToMany는 기본이 Lazy이므로 명시하지 않았습니다. 따라서 좋아요 상품은 직접 조회될 때만 DB에서 조회되고, 다른 경우는 프록시 형태로 존재합니다. //아이템 상세 정보 @GetMapping("item") public String itemDetail(@RequestParam("itemId") Long itemId, @SessionAttribute(name = "loginMember") Member loginMember, Model model) { log.info("item 호출"); Item item = itemService.findOne(itemId); log.info(loginMember.getLoginId() + " " + loginMember.getName()); // 좋아요 여부 추가 model.addAttribute("isLiked", memberService.isliked(loginMember, item)); //이 부분입니다!! model.addAttribute("item", item); model.addAttribute("member", loginMember); if (item.getCategory().equals("Book")) { return "items/item/book"; } if (item.getCategory().equals("Album")) { return "items/item/album"; } if (item.getCategory().equals("Movie")) { return "items/item/movie"; } return "items/item"; } 위 컨트롤러를 호출하면, isliked라는 매소드를 실행하게 됩니다. 좋아요 여부를 확인하는 메소드입니다. //좋아요 아이템이 아니면 false 반환 @Transactional public Boolean isliked(Member member, Item item) { log.info("좋아요 확인 메서드 실행"); // log.info("멤버 정보" + member.getName() + " " + member.getLoginId()); for (LikedItem likeditem: member.getLikedItems()) { //여기에서 lazyinitializationError 발생 if (likeditem.getItem().getName().equals(item.getName())) { log.info("좋아요인 경우"); return true; } } log.info("좋아요 아닌 경우"); return false; } 그런데 여기에서 맴버의 좋아요 목록을 불러오면 lazyinitialization 에러가 발생합니다... 정말 많이 원인도 구글링해보았는데, 영속성 컨텍스트가 종료 된 후 접근할 때 발생하는 것을 알았습니다. 영속성 컨텍스트의 생명주기는 트렌잭션과 거의 동일하다고 알고 있습니다. 만약 위 메소드에 트렌젝션 어노테이션이 없다면 member.getLikedItems() 의 결과를 초기화해주지 않으면 오류가 발생할 것입니다. 따라서 트렌젝션 어노테이션을 넣으므로서, member.getLikedItems()를 가져오고, 직접 DB에서 불러오는 과정을 한 트랜젝션 안에서 수행하도록 했습니다. 그런데 이 메서드에서 계속 LazyinitializatoinError가 발생합니다. 이 부분의 원인을 전혀 못 찾겠습니다.. 해결책으로는 DTO를 사용하거나, fetch Join을 사용해서 멤버와 같이 조인하여 한번에 가져옴으로 해결할 수있을 거라 생각합니다. 하지만 해결책은 알았지만, 위 코드의 무슨 오류가 있는지 정말 궁금합니다. 따라서 이 코드의 오류를 알고 싶습니다. 또한 저의 이해에 오류가 있다면 그 부분도 알려주시면 감사하겠습니다.

  • java
  • jpa
ml505050 댓글 1 좋아요 0 조회수 180

117번 동영상이 안올라온거 같아요

미해결

PZM기반 실무중심 백엔드 부트캠프(프리트레이닝)

그런거 같아요

  • java
  • spring
  • spring-boot
  • jpa
  • backend
김재원 댓글 1 좋아요 0 조회수 250

단건 조회 시 Optional

미해결

실전! 스프링 데이터 JPA

<순수 JPA 기반 리포지토리 만들기>에서 단건 조회 시 Optional로 반환하는데, repository layer에서 orElseThrow를 던지는 방법은 별로인가요?

  • java
  • spring
  • spring-boot
  • jpa
ckdgus1713 댓글 2 좋아요 0 조회수 306

Rolled back transaction for test 로그 출력

해결됨

스프링 DB 2편 - 데이터 접근 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 강의 중에 강사님께서는 @Transactional 애노테이션을 사용하면 Rolled back transaction for test 로그가 뜨는데 저는 뜨지 않습니다. [제 로그] 저는 강사님께서 올려주신 코드를 사용하지 않고 따로 start.spring.io 를 통해 최신 버전을 사용하고 있습니다. [버전정보] 자바 버전: 17 스프링 부트 버전: 3.2.5 [질문 사항] 강의 중간에 로깅 단계를 바꾸는 작업이 있었는데 제가 그 부분을 놓친 것인지, 아니면 스프링 부트의 버전이 달라지면서 transaction 로그를 출력하지 않도록 바뀐 것인지것인지, 아니면 application.properties 등에 다른 설정을 해야하는 것인지 궁금합니다!

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
김성태 댓글 3 좋아요 0 조회수 384

Invalid bound statement (not found): com.helloword.fitstStart.mapper.QuickMapper.findById 에 대한 질의 입니다.

미해결

1시간만에 끝내는 spring boot rest api 서비스 개발

[오류내용] SERVICE에서 MAPPER까지 값은 1로 잘 넘어 오는데 MAPPER에서 XML로 넘어가는 부분에서 오류가 납니다. [오류 SCRIPT] 2024-05-23T12:14:49.232+09:00 INFO 5380 --- [nio-8080-exec-1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms 2024-05-23T12:14:49.272+09:00 INFO 5380 --- [nio-8080-exec-1] c.h.fitstStart.service.QuickService : 111111 ...1 2024-05-23T12:14:49.275+09:00 ERROR 5380 --- [nio-8080-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.helloword.fitstStart.mapper.QuickMapper.findById] with root cause org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.helloword.fitstStart.mapper.QuickMapper.findById at org.apache.ibatis.binding.MapperMethod$SqlCommand.<init>( MapperMethod.java:229 ) ~[mybatis-3.5.14.jar:3.5.14]

  • spring-boot
  • jpa
  • swagger
  • mybatis
kho65 댓글 1 좋아요 0 조회수 586

스냅샷은 어느 영역에 있는건지궁금합니다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

1차 캐시는 jvm heap 메모리 영역에 올라간다는 글을 보았는데요. 그렇다면 스냅샷은 어느 영역에 올라가는건지 궁금합니다 1차 캐시와 같은 영역인지 별도의 다른 영역에 존재하게 되는지..

  • java
  • jpa
japark720 댓글 1 좋아요 0 조회수 202

31강

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

Description: Parameter 0 of constructor in com.group.libraryapp.service.user.UserService required a bean of type 'com.group.libraryapp.repository.user.UserRepository' that could not be found. Action: Consider defining a bean of type 'com.group.libraryapp.repository.user.UserRepository' in your configuration. Disconnected from the target VM, address: '127.0.0.1:53718', transport: 'socket' Process finished with exit code 1 이게 계속 뜨면서 실행이 안됩니다 제발 도와주세요 ㅜㅜㅜㅠㅠ gpt에다가 물어봤는데도 안되어서 말씀드립니다

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
대기업취준생 댓글 1 좋아요 0 조회수 233

Service, Repository 트랜잭션

미해결

스프링 DB 2편 - 데이터 접근 활용 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] [JPA 적용1 - 개발] 14:08 에서 일반적으로 비즈니스 로직을 시작하는 서비스 계층에 트랜잭션을 걸어준다고 했는데 Service + Repository 둘다 트랜잭션을 거는 경우도 있을까요? 둘다 트랜잭션을 거는 경우에 Service에서는 정상적으로 작동해서 트랜잭션이 걸리지 않고, Repository에서는 롤백이 되는 경우도 있을까요?

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
Lilly 댓글 2 좋아요 0 조회수 342

서비스계층과컨트롤러(3) 상품수정

미해결

코드로 배우는 React 19 with 스프링부트 API서버

@PutMapping("/{pno}") public Map<String, String> modify(@PathVariable Long pno, ProductDTO productDTO) { // productDTO안에 pno값만 고정 productDTO.setPno(pno); // 원래 상품을 가지고 온다. old product 가져온다. DB에 저장되어 있는 저장된 정보 ProductDTO oldProductDTO = productService.get(pno); // 새로 업로드할 파일 가져온다. List<MultipartFile> files = productDTO.getFiles(); // 새로 업로드할 파일 저장 List<String> currentUploadFileNames = fileUtil.saveFiles(files); // 지워지지 않는 파일들 keep files 예전 파일 그대로 있는 것 List<String> uploadedFileNames = productDTO.getUploadFileNames(); if(currentUploadFileNames != null && !currentUploadFileNames.isEmpty()) { uploadedFileNames.addAll(currentUploadFileNames); } // 수정하기 productService.modify(productDTO); // 오래된 파일이 문제. 지워져야 하는 파일들 처리 // 기존 파일들을 가져온다. List<String> oldFileNames = oldProductDTO.getUploadFileNames(); if(oldFileNames != null && !oldFileNames.isEmpty()) { // 기존 파일 남아 있는지 확인 // uploadedFileNames에서 없다는건 이 파일은 이제 존재할 의미가 없다는것 그런것만 골라서 모은다. List<String> removeFiles = oldFileNames.stream().filter(fileName -> uploadedFileNames.indexOf(fileName) == -1 ) .collect(Collectors.toList()); // 삭제한다. fileUtil.deleteFiles(removeFiles); } return Map.of("RESULT", "SUCCESS"); } ProductController 에 이 메서드를 입력하고 ProductService에는 // 수정 void modify(ProductDTO productDTO); 이걸 입력하고 ProductServiceImpl에는 @Override public void modify(ProductDTO productDTO) { // 조회 Optional<Product> result = productRepository.findById(productDTO.getPno()); Product product = result.orElseThrow(); // 변경내용 반영 product.changePrice(productDTO.getPrice()); product.changeName(productDTO.getPname()); product.changeDesc(productDTO.getPdesc()); product.changeDel(productDTO.isDelFlag()); // 이미지 처리를 위해 목록을 비운다. List<String> uploadFileNames = productDTO.getUploadFileNames(); product.clearList(); if(uploadFileNames != null && uploadFileNames.isEmpty()) { uploadFileNames.forEach(uploadName ->{ product.addImageString(uploadName); }); } // 저장될 때 파일이 문제 파일이 변경됐는지 알 수 가 없다. productRepository.save(product); } private ProductDTO entityToDTO(Product product) { ProductDTO productDTO = ProductDTO.builder() .pno(product.getPno()) .pname(product.getPname()) .pdesc(product.getPdesc()) .price(product.getPrice()) .delFlag(product.isDelFlag()) .build(); List<ProductImage> imageList = product.getImageList(); if(imageList == null || imageList.isEmpty()) { return productDTO; } // 상품 이미지 목록 문자열로 바꾸기 List<String> fileNameList = imageList.stream().map(productImage -> productImage.getFileName()).toList(); productDTO.setUploadFileNames(fileNameList); return productDTO; } 이걸 입력하고 postman에서 PUT방식으로 해서 기존 이미지파일 내용을 그대로 복사해서 테스트를 하는데 "msg": "Validation failed for argument [1] in public java.util.Map <java.lang.String, java.lang.String> org.zerock.apiserver.controller.ProductController.modify(java.lang.Long,org.zerock.apiserver.dto.ProductDTO): [Field error in object 'productDTO' on field 'uploadFileNames': rejected value [ org.springframework.web.multipart.support .StandardMultipartHttpServletRequest$StandardMultipartFile@192a0968]; codes [typeMismatch.productDTO.uploadFileNames,typeMismatch.uploadFileNames, typeMismatch.java .util.List,typeMismatch]; arguments [ org.springframework.context.support .DefaultMessageSourceResolvable: codes [productDTO.uploadFileNames,uploadFileNames]; arguments []; default message [uploadFileNames]]; default message [Failed to convert property value of type ' org.springframework.web.multipart.support .StandardMultipartHttpServletRequest$StandardMultipartFile' to required type 'java.util.List' for property 'uploadFileNames'; Cannot convert value of type ' org.springframework.web.multipart.support .StandardMultipartHttpServletRequest$StandardMultipartFile' to required type 'java.lang.String' for property 'uploadFileNames[0]': no matching editors or conversion strategy found]] " 이런 에러가 계속 발생하는데요 왜 그럴까요 ㅠ postman에서 출력하는 메세지입니다. GTP에 입력해서 물어봤는데 ProductController 의 modify 메서드에서 ProductDTO 객체의 uploadFileNames 필드가 잘못된 타입으로 전달되었기 때문에 발생합니다. 이런 메세지를 주는데 강의 내용과 똑같이 입력했는데 왜 이런 메세지를 뱉어내는지 잘 모르겠습니다 ㅠ

  • react
  • spring-boot
  • jpa
  • jwt
  • redux-toolkit
jkshin 댓글 1 좋아요 0 조회수 384

auto 설정시 drop 에러

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. INFO: HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) Hibernate: drop table Member cascade constraints Hibernate: create table Member ( id number(19,0) not null, grade varchar2(255 char), name varchar2(255 char), primary key (id) ) 5월 22, 2024 4:56:36 오후 org.hibernate.resource.transaction.backend.jdbc.internal.DdlTransactionIsolatorNonJtaImpl getIsolatedConnection INFO: HHH10001501: Connection obtained from JdbcConnectionAccess [org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess@4e83a98] for (non-JTA) DDL execution was not in auto-commit mode; the Connection 'local transaction' will be committed and the Connection will be set into auto-commit mode. 5월 22, 2024 4:56:36 오후 org.hibernate.tool.schema.internal.ExceptionHandlerLoggedImpl handleException WARN: GenerationTarget encountered exception accepting command : Error executing DDL " drop table Member cascade constraints" via JDBC [Table "MEMBER" not found;] org.hibernate.tool.schema.spi.CommandAcceptanceException: Error executing DDL " drop table Member cascade constraints" via JDBC [Table "MEMBER" not found;] at 최초 자동 생성할 때 Member 테이블이 존재 해야 하나요 ?? 저는 Member 테이블이 없어서 drop 할 수 없다고 하는거 같은데 Member 테이블이 없어도 auto 옵션을 켜놓으면 자동으로 생성되어야 하는 개념 아닌가요 ???

  • java
  • jpa
PA J 댓글 2 좋아요 0 조회수 242

getItem 질문입니다!

해결됨

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 'getItem' 함수가 'setDelivery' 메소드처럼 사용자가 직접 만든 메소드가 아닌데 그러면 스프링 자체에 내장되어 있는 함수인가요? 아니면 어떤 라이브러리를 추가했기 때문에 사용이 가능한 것 인가요? 1번 질문과 별개로, getItem()을 하면 어떻게 Item에 대한 정보를 가져오나요? 마찬가지로 getStatus()또한 컨트롤좌클릭해서 경로를 따라가니 private DeliveryStatus status;로 이동이 되더라구요. 대소문자 차이도 있는데 어떤 원리로 연결이 되고 함수가 자동적으로 생성이 되어있는지 궁금합니다!

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
오현우 댓글 1 좋아요 1 조회수 273

섹션9 프론트의 코드를 보고싶습니다,,,

해결됨

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

안녕하세요 섹션9의 프론트 소스코드를 보고싶은데 강의자료에는 안 올라와 있어서 이렇게 질문으로 남겼습니다,,,

  • vue.js
  • aws
  • spring-boot
  • jpa
  • spring-security
정이삭 댓글 1 좋아요 0 조회수 446

벌크성 수정 쿼리도 select를 한 후에 update?

미해결

실전! 스프링 데이터 JPA

안녕하세요, 예시로 team_id가 2인 member를 team_id가 1인 member로 변경하고 싶은 경우가 있다고 가정해보겠습니다. @Modifying @Query("update Member m set m.team.id = 1 where m.team.id = :id") void updateMemberTeamTo1(@Param("id") Long id); 위 코드처럼 단순히 team_id 로 수정하면 update 쿼리 한 번으로 변경이 가능합니다. @Modifying @Query("update Member m set m.team = :tobe where m.team = :asis") void updateMemberTeamTo1(@Param("asis") Team asis, @Param("tobe") Team tobe); 하지만 team 엔티티를 넘긴다면 team id가 1인 Team과 변경할 team id를 가진 Team을 select 해야하니 쿼리가 총 3번 나갑니다. 단건 update 를 할 때 변경감지를 사용하기 위해 먼저 PK로 select 하고 있습니다. 그런데 여러건을 벌크성 수정 쿼리로 변경을 할 때도 select를 해서 영속성 컨텍스트에 올린 후 변경해야 할까요? 좋은 강의 항상 감사드립니다.

  • java
  • spring
  • spring-boot
  • jpa
lch9502 댓글 1 좋아요 0 조회수 303

값타입은 비록 인스턴스가 달라도 그 안에 값이 같으면 같은 것으로 봐야 한다.

미해결

자바 ORM 표준 JPA 프로그래밍 - 기본편

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] "값 타입은 비록 인스턴스가 달라도 그 안의 값이 같다면 같은 것으로 보아야 한다" 위 문장의 전과 후의 맥락은 모두 이해하였는데, 이 문장이 어떠한 철학에서 나온 내용인지 궁금합니다. 예를 들어서 완전히 동일한 내용을 가진 address를 저장한 두 멤버가 있을 때, Address address1 = new Address("city") member1.setAddress(address1); Address address2 = new Address("city") member2.setAddress(address2); 다음의 결과가 나와야 한다는 의미인가요? findAdd1 = em.find(Member.class, member1.getId()).getAddress(); findAdd2 = em.find(Member.class, member2.getId()).getAddress(); findAdd1.equals(findAdd2) -> true ??

  • java
  • jpa
blackjack_96 댓글 1 좋아요 0 조회수 185

인기 태그

인프런 TOP Writers

주간 인기글