inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

상품 등록 시 오류

미해결

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

Whitelabel Error Page This application has no explicit mapping for /error, so you are seeing this as a fallback. Sun Jan 22 16:28:49 KST 2023 There was an unexpected error (type=Internal Server Error, status=500). org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: form near line 1, column 10 [select i form Item i]; nested exception is java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: form near line 1, column 10 [select i form Item i] org.springframework.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: form near line 1, column 10 [select i form Item i]; nested exception is java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: unexpected token: form near line 1, column 10 [select i form Item i] 상품 등록화면에서 submit 버튼 누르면 이런 오류가 뜹니다.

  • spring
  • 웹앱
  • JPA
  • java
  • spring-boot
  • jpa
  • 웹앱
Lego 댓글 1 좋아요 0 조회수 633

안녕하세요!

미해결

실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)

loanBook() 메소드를 보면 userLoanHistories에 값을 추가하기만 하는데 userLoanHistoryRepository에 값이 추가되어있습니다..이건 spring data jpa의 역할인 건가요??

  • java
  • kotlin
  • spring
  • spring-boot
  • 리팩토링
  • refactoring
가보자!! 댓글 1 좋아요 0 조회수 279

addAttribute 입력시

미해결

[개념은 호옹~, 실습 빡] 스프링 부트, 입문!

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. rttr.addFlashAttribute("msg","삭제가 완료되었습니다"); 위 처럼 입력할 때 뒤에 attributeName, attributeValuerr가 붙는데 어떨때는 attributeValue가 먼저 붙기도 하던데 왜 이런지 알 수 있을까요?

  • spring-boot
무리브 댓글 1 좋아요 0 조회수 330

강의 자료는 어디서 받나요?

미해결

스프링 시큐리티

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • Spring Security
  • java
  • spring-security
  • spring-boot
장미 댓글 1 좋아요 -2 조회수 499

오라클 DB연결 bean설정하는 방법 질문합니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

강의를 듣다가 데이터베이스를 h2 말고 oracle로 사용하고싶어서 변경해봤는데 방법을 잘 모르겠습니다.. 단순하게 db 연결은 가능합니다. public class JdbcTest01 { public static void main(String[] args) { Connection conn = null; Statement stmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "이름", "비밀번호"); Class.forName("oracle.jdbc.driver.OracleDriver"); String sql = "select * from member"; stmt = conn.createStatement(); rs = stmt.executeQuery(sql); System.out.println(" == 쿼리문 처리 결과 =="); while (rs.next()) { System.out.println("Lprod_id : " + rs.getInt("id")); System.out.println("------------------------------"); } } catch (SQLException e) { e.printStackTrace(); } catch (ClassNotFoundException e) { } finally { if (rs!=null) { try { rs.close(); } catch (SQLException e2) { } } if (stmt!=null) { try { stmt.close(); } catch (SQLException e2) { } } if (conn!=null) { try { conn.close(); } catch (SQLException e2) { } } } } } 그런데.. 빈 설정하는 방법을 잘 모르는 것 같습니다 ㅠㅠ (.getConnection에 유저이름과 비밀번호는 제대로 설정했습니다! 밑에만 바꿨어요!) public class JdbcMemberRepository implements MemberRepository { private final DataSource dataSource; public JdbcMemberRepository(DataSource dataSource) { this.dataSource = dataSource; } @Override public Member save(Member member) { String sql = "insert into member(name) values(?)"; Connection conn = null; PreparedStatement pstmt = null; ResultSet rs = null; try { conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe", "이름", "비밀번호"); pstmt = conn.prepareStatement(sql, Statement.RETURN_GENERATED_KEYS); pstmt.setString(1, member.getName()); pstmt.executeUpdate(); rs = pstmt.getGeneratedKeys(); if (rs.next()) { member.setId(rs.getLong(1)); } else { throw new SQLException("id 조회 실패"); } return member; } catch (Exception e) { throw new IllegalStateException(e); } finally { // 5. 자원 반납 if (rs!=null) { try { rs.close(); } catch (SQLException e2) { // TODO: handle exception } } if (conn!=null) { try { conn.close(); } catch (SQLException e2) { // TODO: handle exception } } } } 프로퍼티스 spring.datasource.url=jdbc:oracle:thin:@localhost:1521:xe spring.datasource.driver-class-name=oracle.jdbc.driver.OracleDriver spring.datasource.username=이름 spring.datasource.password=비밀번호 디펜던시스 dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' implementation 'com.oracle.ojdbc:ojdbc8:19.3.0.0' implementation 'com.oracle.database.jdbc:ojdbc6:11.2.0.4' testImplementation 'org.springframework.boot:spring-boot-starter-test' implementation 'org.projectlombok:lombok' implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' } @Configuration @Configuration public class SpringConfig { private DataSource dataSource; public SpringConfig(DataSource dataSource) { this.dataSource = dataSource; } @Bean //스프링빈수동등록 public MemberService memberService() { return new MemberService((MemoryMemberRepository) memberRepository()); } @Bean public MemberRepository memberRepository() { //return new MemoryMemberRepository(); return new JdbcMemberRepository(dataSource); } } 어떤 부분을 추가하고 수정해야하는지 잘 모르겠습니다 ㅠ

  • java
  • mvc
  • MVC
  • spring-boot
  • spring
배성환 댓글 1 좋아요 0 조회수 1040

선행 지식

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

스프링 강의 선행으로 요구되는 지식이 자바, 관계형 데이터베이스 기초라고 되어 있는데요 자바랑 MySQL은 공부했습니다. 그런데 JDBC나 JSP, 서블릿, 디자인 패턴 등에 대한 지식이나 웹 개발에 대한 지식은 모른 채로 로드맵 시작해도 상관없나요?

  • spring-boot
  • mvc
  • MVC
  • java
  • spring
11 1 댓글 1 좋아요 0 조회수 536

mysql.server start 에러

미해결

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

M1 Macbook Pro입니다. brew로 mysql 설치 후 mysql.server start를 하면 아래 메시지가 반겨주네요. ERROR! The server quit without updating PID file (/opt/homebrew/var/mysql/Wons-MacBook-Pro.local.pid). 어찌해야 될까요? 설 연휴에 죄송합니다^^

  • spring-boot
  • java
  • mysql
  • aws
  • spring
  • JPA
Won Baek 댓글 3 좋아요 1 조회수 4999

DI를 이용한 Proxy패턴 관련 질문

해결됨

토비의 스프링 부트 - 이해와 원리

DI를 이용한 Decorator, Proxy 패턴 듣고있는데요. 강의자료에 프록시 패턴의 프록시와 일반적용 용어 프록시, 자바의 다이나믹 프록시가 동일한 건 아니다. 이게 혹시 어떤내용인지 좀 더 알 수 있을까요?

  • spring
  • spring-boot
  • spring-jdbc
  • spring-jdbc
Master dong 댓글 1 좋아요 4 조회수 856

SecurityResourceService.getResourceList() 관련질문

미해결

스프링 시큐리티

resourcesList.forEach(re -> { List<ConfigAttribute> configAttributeList = new ArrayList<>(); re.getRoleSet() .forEach(ro -> { configAttributeList.add(new SecurityConfig(ro.getRoleName())); result.put(new AntPathRequestMatcher(re.getResourceName()), configAttributeList); }); }); 가 아니라 resourcesList.forEach(re -> { List<ConfigAttribute> configAttributeList = new ArrayList<>(); re.getRoleSet() .forEach(ro -> { configAttributeList.add(new SecurityConfig(ro.getRoleName())); }); result.put(new AntPathRequestMatcher(re.getResourceName()), configAttributeList); }); 이것이 강사님의 의도한바가 아니었을까 생각이 드는데 제가 잘못 짚은걸까요?? 참고: 5) 웹 기반 인가처리 DB 연동 - FilterInvocationSecurityMetadataSource (2)

  • spring-boot
  • java
  • spring-security
  • Spring Security
김진범 댓글 1 좋아요 0 조회수 536

JUnit 테스트 콘솔에서 SQL문

미해결

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

JUnit 테스트 콘솔의 SQL문에서 1차 캐시에서 엔티티를 조작하고 있는지 아니면 데이터베이스에서 DML문을 써서 조작하고 있는지 확인을 하고 싶은데, JUnit 테스트 코드 실행후 콘솔창을 보면, SQL문은 정상적으로 나오는데, 1차 캐시에서 삭제한건지 데이터베이스에서 삭제를 시도한건진 확인이 안됩니다. 확인할 수 있는 방법이 있을까요?

  • JPA
  • spring-boot
  • 웹앱
  • spring
  • jpa
  • 웹앱
  • java
isLoaded() 댓글 1 좋아요 0 조회수 1313

영속성 전이 관련해서 질문드립니다.

해결됨

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

안녕하세요 강의 수강 후 활용해서 프로젝트를 진행중인데, 영속성 전이 관련해서 질문이 있습니다. 강의 내용처럼 Order에 있는 member에 다음과 같은 설정을 하면 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name="member_id") private Member memberId; object references an unsaved transient instance - save the transient instance before flushing에러가 발생합니다. 그래서 다음과 같이 영속성 전이 설정을 하면 에러는 안뜨지만 같은 멤버가 두번씩 저장되는 문제가 발생합니다. @ManyToOne(fetch = FetchType.LAZY, cascade = CascadeType.PERSIST) @JoinColumn(name="member_id") private Member memberId; 해당 Order가 Create되면서 Member테이블에 member가 저장되는데 이미 해당 멤버는 db에 저장되어있는 상황. (회원가입하면서 멤버가 저장되어있었음) ㄴ test05가 두번 저장되어있음 강의 코드는 Order에 영속성 전이 코드를 넣지 않아도 되던데 해당 에러를 발생시키지 않으려면 어떻게 해야할까요? Member 엔티티와 Order 엔티티 코드 입니다. @Entity @Table(name = "ORDERS") @NoArgsConstructor @Getter public class Order { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "order_id") private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name="member_id") private Member memberId; @Column(name = "post_id") private Long postId; @Embedded private Point price; @Column(name="order_at") private Timestamp orderAt; public static Order of(Member member, Long postId, Point price){ Order order = new Order(); order.setMember(member); order.postId = postId; order.price = price; return order; } public void setMember(Member member){ this.memberId = member; member.getOrders().add(this); } @Entity @Table(name = "member") @Getter @Setter @NoArgsConstructor @SQLDelete(sql = "UPDATE member SET deleted_at = NOW() where id = ?") @Where(clause = "deleted_at is NULL") public class Member { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @Column(name = "member_id") private String memberId; private String password; @Column(name = "member_name") private String memberName; private String email; @Column(name = "role") @Enumerated(EnumType.STRING) private MemberRole role = MemberRole.USER; @OneToMany(mappedBy = "memberId") private List<Order> orders = new ArrayList<Order>(); public static Member of(String memberId, String password, String memberName, String email){ Member member = new Member(); member.setMemberId(memberId); member.setPassword(password); member.setMemberName(memberName); member.setEmail(email); return member; } public static Member of(MemberDto dto){ Member member = new Member(); member.setMemberId(dto.getMemberId()); member.setPassword(dto.getPassword()); member.setMemberName(dto.getMemberName()); member.setEmail(dto.getEmail()); member.setRole(dto.getRole()); return member; }

  • JPA
  • spring
  • 웹앱
  • java
  • spring-boot
  • jpa
  • 웹앱
  • spring-boot
Harper 댓글 1 좋아요 0 조회수 788

Flow 생성 시, flowBuilder에 end()와 build()를 각각 호출하는 이유

미해결

스프링 배치

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요, FlowJob 관련하여서 궁금한 점이 있어 문의드립니다. 강의 중에 아래와 같이 작성된 코드가 있었는데요. @Bean public Flow flow() { FlowBuilder<Flow> flowBuilder = new FlowBuilder<>("flow"); flowBuilder.start(step1()) .next(step2()) .end(); return flowBuilder.build(); } FlowBuilder 내 end() 메소드를 살펴보면, end() 메소드 내에서 this.build ()를 호출하는 것으로 보이는데요. public final Q end() { return this.build(); } 하기와 같이 작성하지 않고 위처럼 end()와 build()를 각각 쓰는 사유가 있는지 궁금합니다. @Bean public Flow flow() { FlowBuilder<Flow> flowBuilder = new FlowBuilder<>("flow"); return flowBuilder.start(step1()) .next(step2()) .end(); } 새해 복 많이 받으세요 :)

  • spring-boot
  • spring-batch
ssg.alln02 댓글 1 좋아요 0 조회수 592

bean 인식이 안됩니다.

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

jpa 라이브러리 추가했고 application 설정도 다 하고 @Configuration 애노테이션도 넣었는데 EntityManager가 빈으로 등록되어 있지 않다고 나옵니다. 왜 이러는걸까요? 프로젝트 링크: https://drive.google.com/file/d/1x_OeOhEBOKSNTiuzUqxY-zSyQmsmon5n/view?usp=share_link

  • java
  • mvc
  • spring-boot
  • MVC
  • spring
펭귄 댓글 1 좋아요 0 조회수 862

SecurityContextHolder에 대한 질문

미해결

스프링 시큐리티

강의를 듣다 햇갈리는 부분이 있어 질문드립니다. 사용자가 로그인 요청을 하여 인증에 실패하면 SecurityContextHolder.clearContext()를 호출하여 SecurityContextHolder를 초기화 하는 것으로 알고있습니다. 그렇다면 사용자A와 사용자B가 동시에 요청하였을 때 사용자A는 로그인에 성공하여 SecurityContextHolder에 저장되고 사용자B는 로그인에 실패하여 SecurityContextHolder.clearContext()를 호출하면 사용자 A의 정보 역시 삭제되는 것이 맞나요? 또한 이러한 상황이 나올진 모르겠지만 사용자A의 인증 정보를 Session에 저장하기 전 위의 상황이 발생하여 Session에 사용자 A의 정보가 저장되지 않을 수도 있나요? 마지막으로 여러 사용자가 동시에 요청했을 때 SecurityContext context = (SecurityContext) session.getAttribute(HttpSessionSecurityContextRepository.SPRING_SECURITY_CONTEXT_KEY); 해당 구문으로 session에서 값을 찾으면 SPRING_SECURITY_CONTEXT_KEY라는 같은 키로 찾는데 어떻게 사용자를 구분할 수 있는지 궁금합니다.

  • java
  • spring-boot
  • spring-security
  • Spring Security
  • spring-boot
asdf 댓글 1 좋아요 0 조회수 379

순수JDBC 부분 실행 오류

해결됨

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

입문 강의의 순수 JDBC 부분에서 제일 마지막 부분입니다. 제일 마지막으로 프로그램 실행을 해서 데이터베이스가 잘 작동하는지 확인하는데 강의안에 코드를 모두 복붙했기 때문에 오타는 없을건데 SpringConfig에서 저렇게 두개가 오류가 납니다. 첫번째 오류는 SpringConfig 파일 위치를 옮겨서 해결했는데 그 다음 오류인 위의 사진에서 빨간색 글씨로된 부분은 왜 오류가 나는지 모르겠습니다.

  • MVC
  • mvc
  • spring
  • spring-boot
  • java
  • spring-boot
fgh2585 댓글 1 좋아요 0 조회수 326

./gradlew build 하고나서 인텔리에서 오류가 납니다.

미해결

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 우선 개발환경은 우분투 22.04 버전입니다. 재부팅은 해보았습니다. 그래들을 빌드(sudo ./gradlew build)하고나서는 인텔리제이에서 run하면, 빨간 글자로unable to delete directory~오류가 발생합니다. gradle clean을 하면 인텔리에서 정상으로 실행됩니다.

  • MVC
  • mvc
  • spring-boot
  • java
  • spring
하영웅 댓글 1 좋아요 0 조회수 505

이번 강의에 대한 질문이 있습니다.

미해결

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

아직 개인적으로 개발 공부 중인 저에게 너무 앞서가는 내용이 아닌가 싶기도 하고 실제로 Map 등 java에 관한 이해가 아직 부족해서 이 부분을 패스하고 나중에 필요할 때 다시 들어도 공부하는 틀에 큰 지장이 없는지 여쭤보고 싶습니다.

  • spring
  • spring-boot
  • JPA
  • jpa
  • spring-boot
  • java
gogoDevelop 댓글 1 좋아요 0 조회수 704

하나의 작업을 여러 서비스 계층에서 나눠서 할때 트랜잭션 처리

미해결

실전! 스프링 데이터 JPA

예를들면 하나의 게시글을 처음 작성하며 여러 태그도 함께 붙이는 내용을 구현할 때 게시글 관련해서 PostService, 태그 관련해서 TagService로 처리를 한다고 가정해보겠습니다. public ResponseEntity(@RequestBody PostRequest postRequest) { Post post = postService.post (postRequest.toPost()); tagService.addTag(postRequest.toTag()); return ResponseEntity ...; } 이런 형태이고 post() 메서드를 통해 게시글을 저장하고 addTag() 메서드를 통해 태그를 저장한다고 할때 서로 다른 서비스 클래스의 메서드에 @Transactional 이 걸려있어서 만약 Post 엔티티를 저장한 후 Tag 엔티티를 저장해야 하는 상황에서 중간에 문제가 발생한다면 Tag는 저장이 안되었지만 Post는 저장이 되는 문제가 발생합니다. 간단하게 상황 설명만을 위해 작성한 예시라 내용이 이상하지만 이런 상황에서 트랜잭션을 한번에 처리할 방법이 있을까요? 결국 하나의 트랜잭션에서 처리해야할것 같아서 위 예시의 경우 postService에서 TagService의 addTag를 호출하는 형태로 하면되지 않을까 고민해 봤습니다. 보통 이런식으로 한번에 처리해야 하는 로직이 여러 서비스 계층에 나누어 있는 경우? 처리를 어떤식으로 하는지 어떤 방법들이 있는지 궁금합니다.

  • java
  • spring-boot
  • JPA
  • jpa
  • spring-boot
  • spring
pj5016 댓글 1 좋아요 0 조회수 1369

Springboot version(start.spring.io)

해결됨

토비의 스프링 부트 - 이해와 원리

https://start.spring.io/ 현재는 2.7.6은 보이지 않아, 우선 인텔리제이에서의 프로젝트 생성 마법사로 설정하거나, springboot cli로 설치해야 할 것 같아 공유드립니다.

  • spring-jdbc
  • spring-boot
  • spring-jdbc
  • spring
  • spring-boot
gguu 댓글 1 좋아요 0 조회수 1304

인기 태그

인프런 TOP Writers

주간 인기글