inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

임베디드 타입에서 어떻게 Entity를 쓰는 건가요?

미해결

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

Person 클래스입니다. package hellojpa; import javax.persistence.Column; import javax.persistence.Entity; import javax.persistence.GeneratedValue; import javax.persistence.Id; @Entity public class Person { @Id @GeneratedValue @Column(name = "person_id") private Long id; private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } Address 클래스입니다. package hellojpa; import javax.persistence.*; @Embeddable public class Address { private String city; private String street; private String zipcode; @OneToOne @JoinColumn(name = "person_id") private Person person; public Address() { } public Address(String city, String street, String zipcode) { this.city = city; this.street = street; this.zipcode = zipcode; } public String getCity() { return city; } public void setCity(String city) { this.city = city; } public String getStreet() { return street; } public void setStreet(String street) { this.street = street; } public String getZipcode() { return zipcode; } public void setZipcode(String zipcode) { this.zipcode = zipcode; } } 제가 연관관계 매핑에 대해서 이해를 못하고 있는 건가요? person을 1:1 매핑을했다고 생각했습니다.

  • java
  • jpa
  • JPA
진짜 잘하고싶다 댓글 1 좋아요 0 조회수 585

SpringBoot 3.0.2 버전 QueryDSL 설정문제

미해결

실전! Querydsl

[질문 내용] 안녕하세요. 수강생 김땡땡이라고 합니다. 추가로 작성해주신 Spring 3.0 버전 설정을 적용해서 build.gradle을 작성했는데 아래와 같은 에러가 발생하면서 테스트 에러가 발생합니다. 먼저 강의내용과 수업자료를 통해서 Springboot 3.0 이상 버전에서 설정해야되는 부분들을 추가했습니다. javax관련 오류는 뜨지 않습니다. 하지만 다른 문제가 생겼는데요.. gradle >other >compileQuerydsl 을 실행하면, 문제점이 있습니다. compileQuerydsl을 통해서 생성되는 Q Class는 build 경로에만 생기고 src/main에는 생성이 되지 않는다. <build 경로 아래에는 성공적으로 Qclass 가 생성되었습니다.> 하지만 src/main아래에는 생성되지 않았네요.. 그래도 build 경로아래에 QClass가 생성되어있으니 간단한 Test는 될 것 같아서 수업 내용을 따라서 작성하고 실행해봤는데. 위와 같은 에러가 발생했습니다. Qclass를 찾지못해 발생하는 오류같은데.. 왜 이런 현상이 생기는지 모르겠습니다. 강사님과 똑같이 작성했는데.. 단순 버전 문제일까요? 이런경우엔 gradle 버전도 상관이 있는건가요? 현재 사용하는 gradle 버전은 확인해보니 7.6입니다. 검색을 많이 해봐도 해결방안이 나오질 않습니다. 도움 부탁드립니다. =======================저의 build.gradle 설정======================== plugins { id 'java' id 'org.springframework.boot' version '3.0.2' id 'io.spring.dependency-management' version '1.1.0' id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" } group = 'study' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' // Querydsl 추가 implementation 'com.querydsl:querydsl-jpa:5.0.0:jakarta' annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jakarta" annotationProcessor "jakarta.annotation:jakarta.annotation-api" annotationProcessor "jakarta.persistence:jakarta.persistence-api" } tasks.named('test') { useJUnitPlatform() } //querydsl 추가 시작 def querydslDir = "$buildDir/generated/querydsl" querydsl { jpa = true querydslSourcesDir = querydslDir } sourceSets { main.java.srcDir querydslDir } configurations { querydsl.extendsFrom compileClasspath } compileQuerydsl { options.annotationProcessorPath = configurations.querydsl } //querydsl 추가 끝 ======================= Hello Entity ============================= package study.querydsl.entity; import jakarta.persistence.Entity; import jakarta.persistence.GeneratedValue; import jakarta.persistence.Id; import lombok.Getter; import lombok.Setter; @Entity @Getter @Setter public class Hello { @Id @GeneratedValue private Long id; }

  • jpa
  • JPA
  • java
Hyeongjun Kim 댓글 3 좋아요 0 조회수 9069

Axios로 API 요청시 에러

미해결

비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지

Axios로 아래와 같이 요청시 Object가 안나오고 에러가 발생합니다. 에러내용은 아래와 같습니다 참고로 MySQL 데이터는 아래와 같습니다. Axios dummy 테스트는 문제가 없었는데, Network Error는 뭘까요?

  • html/css
  • aws
  • github
  • rest-api
  • javascript
  • HTML/CSS
  • mysql
  • git
jksyk 댓글 3 좋아요 0 조회수 1197

@RequestParam 질문드립니다

해결됨

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

======================================== [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] @GetMapping("hello-string") @ResponseBody public String helloString(@RequestParam("name") String name1){ return "hello"+name1; } 위와 같은 코드와 url에서 localhost:8080/hello-string?name=springboot를 입력받았을 때 파라미터 name은 key값으로서 value값인name1과 바인딩 되어 name1에 springboot를 저장 하기위한 용도로 사용되는 건가요? 다른 시각으로 name1을 key값로 springboot를 value값 생각해도 되는건가요? name - name1 - springboot (key) - (value) ................(key) - (value) 즉, 이렇게 이해해도 되는건가요?

  • java
  • spring-boot
  • mvc
  • spring
  • spring-boot
  • MVC
koreaioi 댓글 1 좋아요 1 조회수 718

컨트롤러에서 레포지토리를 호출할 때 의존성

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 여기에 질문 내용을 남겨주세요. 주문 목록 검색, 취소 강의 2분 20초 즈음에 함수위임 정도의 간단한 행동은 컨트롤러에서 직접 호출하는 것도 고려해도 괜찮다라고 하셨는데, 이는 즉 컨트롤러가 레포지토리를 바로 의존하는 상황이여도 상황에 따라서는 괜찮다고 이해하여도 괜찮을까요 ?

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

onCreateOptionsMenu return 값 질문 !

미해결

윤재성의 자바 기반 안드로이드 앱개발 Part 2 - 메뉴와 4대 구성요소

onCreateOptionsMenu 메소드의 return 값을 false로 변경하고 재실행 여러번 했는데 옵션 메뉴가 안사라지더라고요 혹시 버그일까요 ?

  • java
  • android
aa pp 댓글 1 좋아요 0 조회수 345

@RequestBody, @RequestParam을 사용하면 왜 에러가 뜰까요?

미해결

실전! Querydsl

안녕하세요! 혼자 복습 해보다가 얼떨결에 시도해본 방법인데, 매개변수에@RequestBody를 선언해주고, 포스트맨에서 Body쪽에 값을 넘겨주었는데 에러가 떴습니다. 그리고 @RequestBody를 제거한 뒤에, 포스트맨에서는 Param쪽에 값을 넘겨주니 작동이 됐습니다. 전 그동안 연습하면서 controller 쪽에 값을 받아올 때는 @RequestBody / @RequestParam / @PathVariable 셋중 하나 반드시 넣어줘야 한다고 배웠었는데요. 강의에서 아무것도 선언해주지 않아야 작동 되는 것을 보고 크게 혼란이 왔습니다. 강의의 경우 포스트맨에서 쿼리스트링으로 값을 받아오고 있으니 @RequestParam을 넣어줘야 하지 않나요? 이것도 넣으면 마찬가지로 에러가 뜹니다. 왜 그런건가요??

  • JPA
  • jpa
  • java
wodnjs306 댓글 1 좋아요 0 조회수 1111

간단한 주문조회 V3 에서의 오류

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] @GetMapping("/api/v3/simple-orders") public List<SimpleOrderDto> orderV3(){ List<Order> orders = orderRepository.findAllWithMemberDelivery(); List<SimpleOrderDto> result = orders.stream() .map(o -> new SimpleOrderDto(o)) .collect(Collectors.toList()); return result; } public List<Order> findAllWithMemberDelivery() { return em.createQuery( "select o from Order o" + "join fetch o.member m" + "join fetch o.delivery d", Order.class ).getResultList(); } 해당 코드를 작성 후 코드를 실행시켜 postman 을 통해 api 요청을 보내면 antlr.MismatchedTokenException: expecting "all", found 'o' at antlr.Parser.match( Parser.java:211 ) ~[antlr-2.7.7.jar:na] at org.hibernate.hql.internal.antlr.HqlBaseParser.propertyFetch( HqlBaseParser.java:1944 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.hql.internal.antlr.HqlBaseParser.fromClassOrOuterQueryPath( HqlBaseParser.java:2134 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.hql.internal.antlr.HqlBaseParser.fromRange( HqlBaseParser.java:1646 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.hql.internal.antlr.HqlBaseParser.fromClause( HqlBaseParser.java:1465 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.hql.internal.antlr.HqlBaseParser.selectFrom( HqlBaseParser.java:1165 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.hql.internal.antlr.HqlBaseParser.queryRule( HqlBaseParser.java:825 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.hql.internal.antlr.HqlBaseParser.selectStatement( HqlBaseParser.java:336 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.hql.internal.antlr.HqlBaseParser.statement( HqlBaseParser.java:200 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse( QueryTranslatorImpl.java:294 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile( QueryTranslatorImpl.java:189 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile( QueryTranslatorImpl.java:144 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>( HQLQueryPlan.java:113 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>( HQLQueryPlan.java:73 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan( QueryPlanCache.java:162 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan( AbstractSharedSessionContract.java:604 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.internal.AbstractSharedSessionContract.createQuery( AbstractSharedSessionContract.java:716 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.internal.AbstractSharedSessionContract.createQuery( AbstractSharedSessionContract.java:816 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.internal.AbstractSharedSessionContract.createQuery( AbstractSharedSessionContract.java:113 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) ~[na:na] at java.base/java.lang.reflect.Method.invoke( Method.java:566 ) ~[na:na] at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke( ExtendedEntityManagerCreator.java:362 ) ~[spring-orm-5.3.2.jar:5.3.2] at com.sun.proxy.$Proxy99.createQuery(Unknown Source) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) ~[na:na] at java.base/java.lang.reflect.Method.invoke( Method.java:566 ) ~[na:na] at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke( SharedEntityManagerCreator.java:311 ) ~[spring-orm-5.3.2.jar:5.3.2] at com.sun.proxy.$Proxy99.createQuery(Unknown Source) ~[na:na] at jpabook.jpashop.repository.OrderRepository.findAllWithMemberDelivery( OrderRepository.java:100 ) ~[classes/:na] at jpabook.jpashop.repository.OrderRepository$$FastClassBySpringCGLIB$$9808961b.invoke(<generated>) ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invoke( MethodProxy.java:218 ) ~[spring-core-5.3.2.jar:5.3.2] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint( CglibAopProxy.java:771 ) ~[spring-aop-5.3.2.jar:5.3.2] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:163 ) ~[spring-aop-5.3.2.jar:5.3.2] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed( CglibAopProxy.java:749 ) ~[spring-aop-5.3.2.jar:5.3.2] at org.springframework.dao.support .PersistenceExceptionTranslationInterceptor.invoke( PersistenceExceptionTranslationInterceptor.java:137 ) ~[spring-tx-5.3.2.jar:5.3.2] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:186 ) ~[spring-aop-5.3.2.jar:5.3.2] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed( CglibAopProxy.java:749 ) ~[spring-aop-5.3.2.jar:5.3.2] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept( CglibAopProxy.java:691 ) ~[spring-aop-5.3.2.jar:5.3.2] at jpabook.jpashop.repository.OrderRepository$$EnhancerBySpringCGLIB$$addaf799.findAllWithMemberDelivery(<generated>) ~[classes/:na] at jpabook.jpashop.api.OrderSimpleApiController.orderV3( OrderSimpleApiController.java:49 ) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) ~[na:na] at java.base/java.lang.reflect.Method.invoke( Method.java:566 ) ~[na:na] at org.springframework.web.method.support .InvocableHandlerMethod.doInvoke( InvocableHandlerMethod.java:197 ) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.method.support .InvocableHandlerMethod.invokeForRequest( InvocableHandlerMethod.java:141 ) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle( ServletInvocableHandlerMethod.java:106 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod( RequestMappingHandlerAdapter.java:894 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal( RequestMappingHandlerAdapter.java:808 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle( AbstractHandlerMethodAdapter.java:87 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:1061 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.DispatcherServlet.doService( DispatcherServlet.java:961 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.FrameworkServlet.processRequest( FrameworkServlet.java:1006 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.FrameworkServlet.doGet( FrameworkServlet.java:898 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at javax.servlet.http.HttpServlet.service( HttpServlet.java:626 ) ~[tomcat-embed-core-9.0.41.jar: 4.0.FR ] at org.springframework.web.servlet.FrameworkServlet.service( FrameworkServlet.java:883 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at javax.servlet.http.HttpServlet.service( HttpServlet.java:733 ) ~[tomcat-embed-core-9.0.41.jar: 4.0.FR ] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:231 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:166 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.tomcat.websocket.server.WsFilter.doFilter( WsFilter.java:53 ) ~[tomcat-embed-websocket-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:193 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:166 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.springframework.web.filter.RequestContextFilter.doFilterInternal( RequestContextFilter.java:100 ) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:119 ) ~[spring-web-5.3.2.jar:5.3.2] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:193 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:166 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.springframework.web.filter.FormContentFilter.doFilterInternal( FormContentFilter.java:93 ) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:119 ) ~[spring-web-5.3.2.jar:5.3.2] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:193 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:166 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal( CharacterEncodingFilter.java:201 ) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:119 ) ~[spring-web-5.3.2.jar:5.3.2] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:193 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:166 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:202 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:97 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.authenticator.AuthenticatorBase.invoke( AuthenticatorBase.java:542 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:143 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java:92 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:78 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:343 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:374 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:65 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:888 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1597 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:49 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1128 ) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:628 ) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at java.base/java.lang.Thread.run( Thread.java:834 ) ~[na:na] 2023-01-31 17:43:10.800 ERROR 20685 --- [nio-8080-exec-8] 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.dao.InvalidDataAccessApiUsageException: org.hibernate.hql.internal.ast.QuerySyntaxException: expecting "all", found 'o' near line 1, column 56 [select o from jpabook.jpashop.domain.Order ojoin fetch o.member mjoin fetch o.delivery d]; nested exception is java.lang.IllegalArgumentException: org.hibernate.hql.internal.ast.QuerySyntaxException: expecting "all", found 'o' near line 1, column 56 [select o from jpabook.jpashop.domain.Order ojoin fetch o.member mjoin fetch o.delivery d]] with root cause org.hibernate.hql.internal.ast.QuerySyntaxException: expecting "all", found 'o' near line 1, column 56 [select o from jpabook.jpashop.domain.Order ojoin fetch o.member mjoin fetch o.delivery d] at org.hibernate.hql.internal.ast.QuerySyntaxException.convert( QuerySyntaxException.java:74 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.hql.internal.ast.ErrorTracker.throwQueryException( ErrorTracker.java:93 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.parse( QueryTranslatorImpl.java:301 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.doCompile( QueryTranslatorImpl.java:189 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.hql.internal.ast.QueryTranslatorImpl.compile( QueryTranslatorImpl.java:144 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>( HQLQueryPlan.java:113 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.engine.query.spi.HQLQueryPlan.<init>( HQLQueryPlan.java:73 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.engine.query.spi.QueryPlanCache.getHQLQueryPlan( QueryPlanCache.java:162 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.internal.AbstractSharedSessionContract.getQueryPlan( AbstractSharedSessionContract.java:604 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.internal.AbstractSharedSessionContract.createQuery( AbstractSharedSessionContract.java:716 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.internal.AbstractSharedSessionContract.createQuery( AbstractSharedSessionContract.java:816 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at org.hibernate.internal.AbstractSharedSessionContract.createQuery( AbstractSharedSessionContract.java:113 ) ~[ hibernate-core-5.4.25.Final .jar: 5.4.25.Final ] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) ~[na:na] at java.base/java.lang.reflect.Method.invoke( Method.java:566 ) ~[na:na] at org.springframework.orm.jpa.ExtendedEntityManagerCreator$ExtendedEntityManagerInvocationHandler.invoke( ExtendedEntityManagerCreator.java:362 ) ~[spring-orm-5.3.2.jar:5.3.2] at com.sun.proxy.$Proxy99.createQuery(Unknown Source) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) ~[na:na] at java.base/java.lang.reflect.Method.invoke( Method.java:566 ) ~[na:na] at org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke( SharedEntityManagerCreator.java:311 ) ~[spring-orm-5.3.2.jar:5.3.2] at com.sun.proxy.$Proxy99.createQuery(Unknown Source) ~[na:na] at jpabook.jpashop.repository.OrderRepository.findAllWithMemberDelivery( OrderRepository.java:100 ) ~[classes/:na] at jpabook.jpashop.repository.OrderRepository$$FastClassBySpringCGLIB$$9808961b.invoke(<generated>) ~[classes/:na] at org.springframework.cglib.proxy.MethodProxy.invoke( MethodProxy.java:218 ) ~[spring-core-5.3.2.jar:5.3.2] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint( CglibAopProxy.java:771 ) ~[spring-aop-5.3.2.jar:5.3.2] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:163 ) ~[spring-aop-5.3.2.jar:5.3.2] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed( CglibAopProxy.java:749 ) ~[spring-aop-5.3.2.jar:5.3.2] at org.springframework.dao.support .PersistenceExceptionTranslationInterceptor.invoke( PersistenceExceptionTranslationInterceptor.java:137 ) ~[spring-tx-5.3.2.jar:5.3.2] at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed( ReflectiveMethodInvocation.java:186 ) ~[spring-aop-5.3.2.jar:5.3.2] at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed( CglibAopProxy.java:749 ) ~[spring-aop-5.3.2.jar:5.3.2] at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept( CglibAopProxy.java:691 ) ~[spring-aop-5.3.2.jar:5.3.2] at jpabook.jpashop.repository.OrderRepository$$EnhancerBySpringCGLIB$$addaf799.findAllWithMemberDelivery(<generated>) ~[classes/:na] at jpabook.jpashop.api.OrderSimpleApiController.orderV3( OrderSimpleApiController.java:49 ) ~[classes/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke( NativeMethodAccessorImpl.java:62 ) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke( DelegatingMethodAccessorImpl.java:43 ) ~[na:na] at java.base/java.lang.reflect.Method.invoke( Method.java:566 ) ~[na:na] at org.springframework.web.method.support .InvocableHandlerMethod.doInvoke( InvocableHandlerMethod.java:197 ) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.method.support .InvocableHandlerMethod.invokeForRequest( InvocableHandlerMethod.java:141 ) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle( ServletInvocableHandlerMethod.java:106 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod( RequestMappingHandlerAdapter.java:894 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal( RequestMappingHandlerAdapter.java:808 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle( AbstractHandlerMethodAdapter.java:87 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.DispatcherServlet.doDispatch( DispatcherServlet.java:1061 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.DispatcherServlet.doService( DispatcherServlet.java:961 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.FrameworkServlet.processRequest( FrameworkServlet.java:1006 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at org.springframework.web.servlet.FrameworkServlet.doGet( FrameworkServlet.java:898 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at javax.servlet.http.HttpServlet.service( HttpServlet.java:626 ) ~[tomcat-embed-core-9.0.41.jar: 4.0.FR ] at org.springframework.web.servlet.FrameworkServlet.service( FrameworkServlet.java:883 ) ~[spring-webmvc-5.3.2.jar:5.3.2] at javax.servlet.http.HttpServlet.service( HttpServlet.java:733 ) ~[tomcat-embed-core-9.0.41.jar: 4.0.FR ] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:231 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:166 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.tomcat.websocket.server.WsFilter.doFilter( WsFilter.java:53 ) ~[tomcat-embed-websocket-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:193 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:166 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.springframework.web.filter.RequestContextFilter.doFilterInternal( RequestContextFilter.java:100 ) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:119 ) ~[spring-web-5.3.2.jar:5.3.2] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:193 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:166 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.springframework.web.filter.FormContentFilter.doFilterInternal( FormContentFilter.java:93 ) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:119 ) ~[spring-web-5.3.2.jar:5.3.2] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:193 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:166 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal( CharacterEncodingFilter.java:201 ) ~[spring-web-5.3.2.jar:5.3.2] at org.springframework.web.filter.OncePerRequestFilter.doFilter( OncePerRequestFilter.java:119 ) ~[spring-web-5.3.2.jar:5.3.2] at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter( ApplicationFilterChain.java:193 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.ApplicationFilterChain.doFilter( ApplicationFilterChain.java:166 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardWrapperValve.invoke( StandardWrapperValve.java:202 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardContextValve.invoke( StandardContextValve.java:97 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.authenticator.AuthenticatorBase.invoke( AuthenticatorBase.java:542 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardHostValve.invoke( StandardHostValve.java:143 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.valves.ErrorReportValve.invoke( ErrorReportValve.java:92 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.core.StandardEngineValve.invoke( StandardEngineValve.java:78 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.catalina.connector.CoyoteAdapter.service( CoyoteAdapter.java:343 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.coyote.http11.Http11Processor.service( Http11Processor.java:374 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.coyote.AbstractProcessorLight.process( AbstractProcessorLight.java:65 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.coyote.AbstractProtocol$ConnectionHandler.process( AbstractProtocol.java:888 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.tomcat.util.net .NioEndpoint$SocketProcessor.doRun( NioEndpoint.java:1597 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at org.apache.tomcat.util.net.SocketProcessorBase.run ( SocketProcessorBase.java:49 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker( ThreadPoolExecutor.java:1128 ) ~[na:na] at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run( ThreadPoolExecutor.java:628 ) ~[na:na] at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run( TaskThread.java:61 ) ~[tomcat-embed-core-9.0.41.jar:9.0.41] at java.base/java.lang.Thread.run( Thread.java:834 ) ~[na:na] 이와 같은 오류가 뜹니다.

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

안녕하세요. 5강, 6강 관련 질문 남깁니다.

미해결

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

안녕하세요. 5강 6강을 수강하던 중 몇 가지 궁금증이 생겨 질문 남깁니다. 5강 GET API에서 사용된 CalculatorAddRequest -> 생성자 O, getter O 6강 POST API에서 사용된 CalculatorMultiplyRequest -> 생성자 X, getter O 1. GET API - CalculatorAddRequest에서 number1, number2 필드에 왜 final 키워드 가 필요한가요? 2. GET API - CalculatorAddRequest에서 생성자를 없애면 값이 0으로 바인딩되던데 왜그럴까요? 3. POST API - CalculatorMultiplyRequest에서는 왜 생성자가 없어도 값이 바인딩되는 걸까요? @RequestBody 어노테이션 때문일까요? 감사합니다.

  • aws
  • java
  • spring
  • JPA
  • mysql
  • jpa
  • spring-boot
migein7 댓글 3 좋아요 3 조회수 663

JDBC강의 - SpringConfig : 'MemberService()' cannot be applied to '(com.example.demo.repository.MemberRepository)'

해결됨

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 [질문 내용] 'MemberService()' cannot be applied to '(com.example.demo.repository.MemberRepository)' error: constructor MemberService in class MemberService cannot be applied to given types; return new MemberService(memberRepository()); ^ required: no arguments found: Membe 적용할 수 없다는 에러가 나오는데 왜 나오는지 모르겠네요. 찾아보니 저만 이런 것 같은데 뭐가 문제일까요 package com.example.demo.config; import com.example.demo.repository.JdbcMemberRepository; import com.example.demo.repository.MemberRepository; import com.example.demo.repository.MemoryMemberRepository; import com.example.demo.service.MemberService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import javax.sql.DataSource; @Configuration public class SpringConfig { @Autowired DataSource dataSource; @Bean public MemberService memberService(){ return new MemberService(memberRepository()); } @Bean public MemberRepository memberRepository(){ //return new MemoryMemberRepository(); return new JdbcMemberRepository(dataSource); } }

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

reset css 에 대한 질문 드립니다.

미해결

풀스택을 위한 탄탄한 프런트엔드 부트캠프 (HTML, CSS, 바닐라 자바스크립트 + ES6) [풀스택 Part2]

안녕하세요. 올려주신 강의 재미있게 수강 하고 있습니다. 그런데 오랫동안 궁금했던 부분이 있어서요, 가능하시다면 답변 부탁 드립니다. "모던 CSS 배경 지식의 이해" 편의 8분 50초 정도부터 나오는 reset.css (css 초기화) 에 대한 내용입니다. 강사님께서는 normalize.css 의 cdn 을 사용하여 초기화 시키는 방법을 공유해주셨는데요. 사실 이전까지 저는 초보자라 실전에서 사용할 경험도 없고 해서, 잘 아시겠지만 아래와 같은 방법으로 css 를 초기화 했었습니다. * { margin: 0; padding: 0; box-sizing: border-box; } 그런데 normalize 를 사용해보니 위와는 다른 결과가 나오더라구요. 전체 초기화는 되지 않고 margin 값 등이 남아있던데, 검색해보니 유용한 css 값들은 제거하지 않고 남겨둔다고 합니다. 그런데 이 유용한 값의 기준이 무엇인지 모르겠어서 홈페이지나 깃허브에 들어가봤는데 사실 못 찾았습니다. 그래서 저는 normalize css 를 사용하되, 전체 선택자로 margin 0을 주고 시작하려 하는데, 이렇게 한다면 normalize css 를 사용하는 이점이 없어질까요? 혹자는 reset cdn 을 사용하는 대신 전체선택자를 이용하면 브라우저 렌더링이 느려진다고 하더라구요. 끝으로, 혹시 올려주신 웹 페이지 만들기 실전 프로젝트 부분 클론코딩 한 것을 개인 깃허브에 게시해도 될지 여쭙고도 싶습니다. 감사합니다!

  • html/css
  • HTML/CSS
  • javascript
  • es6
inflearner 댓글 1 좋아요 0 조회수 672

CSS 정렬 숙제

해결됨

[코드캠프] 시작은 프리캠프

안녕하세요 선생님 수업 감사히 잘 듣고 있습니다! 다름이 아니라 숙제 진행 과정에서 질문이 생겨서 여쭤보려고 합니다! 현재 진행사항은 이렇게 되었고, 코드는 <html> <css> 이렇게 작성했습니다! 근데 제목인 '회원 가입을...' 이 부분이 선생님은 왼족으로 잘 정렬이 되있는데 저는 정가운데에 와있습니다! 왜이렇게 되는지 궁금합니다! 또, 전체 박스 크기도 선생님은 여유가 있는데 저는 딱 맞아 떨어집니다! 왜 이렇게 되는지, 어떻게 해결해야 할지 궁금하여 질문드립니다!

  • html/css
  • javascript
  • HTML/CSS
데싸데분 댓글 1 좋아요 0 조회수 1873

15:41에 나오는 grid 예시

해결됨

[코드캠프] 강력한 CSS

안녕하세요 수업을 듣다가 15:41에 나오는 예시가 잘못된것같아서 질문남겨봅니다! 강사님이 써준 코드대로면 grid-column이 적용되는 범위가 첫번째 1fr과 두번째 2fr 사이까지가 아닌가요? 그림으로 보여드리자면 파랑색 부분이지 않나요? 답변해주시면 감사하겠습니다! ++++++ 좋은 강의감사합니다 재밌게 공부중입니다!

  • html/css
  • HTML/CSS
정익명 댓글 1 좋아요 2 조회수 351

jar 빌드시 오류가 뜹니다

해결됨

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

jar 빌드 부분에서 Build Failed라고 뜨는데 원인이 무엇인지 잘모르겠어요

  • spring-boot
  • 웹앱
  • 웹앱
  • spring
  • jpa
  • java
  • JPA
최재영 댓글 1 좋아요 0 조회수 454

member, order 간에 연관관계를 입력할때 왜 둘다 입력해줘야 하나요?

미해결

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

1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 아니오 [질문 내용] 이전 도메인 설계 강의 듣기로 연관관계에 있는 두 엔티티의 관계를 변경하려면, 주인엔티티의 값을 변경하면 된다고 하셨고, mappedBy 가 선언된 종속(?)엔티티는 값을 변경하더라도 연관관계가 변경되지 않는다고 하셨던것 같은데요. 그럼 연관관계를 설정할때 주인엔티티에만 설정해주면 되지 않나요? 이 강의에서 나오는 연관관계 메소드에서는 Order 엔티티에도 member를 세팅해주고, Memeber 엔티티의 List<Order>에도 order 를 add해주도록 되어 있어서 왜 둘다 세팅하는지 문의드립니다.

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

단위 심화 강의 중 질문..

해결됨

[코드캠프] 강력한 CSS

안녕하세요 <단위 심화> 강의 중 .item2 { background: green; width: calc(100%- 70px); height: 50px; } "- 사이에 공백을 넣지 않았다. 따라서 100% 가로값만 부여가 되었고, 이 때 100%는 입력한 100%가 아니다. item2가 블록요소이기 때문에 자동으로 부모요소의 가로값을 꽉 채워서 들어간다. 그렇기 때문에 100%의 가로줄이 입력된 것이다. 따라서 이 줄은 아무런 기능을 하지 않는다." 이렇게 알려주셨는데 이해가 완벽히 되지 않습니다. 더 쉽게 설명을 해주실 수 있을까요..?

  • html/css
  • HTML/CSS
liltjay 댓글 1 좋아요 0 조회수 266

-arlth 가 뭔가요?

해결됨

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

========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예 [질문 내용] h2 db 설치 연결 확인 후, home 에 test.mv .db 파일을 확인해야 된다면서 ll ll -arlth 이렇게 들어가시는데 이게 뭔가요? 여기서 막혀서 답답하네요. 맥 써본 적도 없고 실무도 윈도우로 하는데 어지럽네요. ll 이 dir 이라는건 아는데 -arlth 는 처음 봐요. home이 어딜 말하는건지 모르겠어요.

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

영상 속 코드와 배포하신 소스 코드가 다르네요.

미해결

애플 웹사이트 인터랙션 클론!

<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <title>Document</title> <style> * { margin: 0; padding: 0; } body { height: 500vh; } .sample-video { position: fixed; top: 0; left: 0; width: 100%; } </style> </head> <body> <div class="container"> <!-- <video class="sample-video" src="../video/sample-low.mp4" muted></video> --> <video class="sample-video" src="../video/sample-high.mp4" muted></video> </div> <script> const videoElem = document.querySelector('.sample-video'); let videoDuration; videoElem.addEventListener('loadeddata', function() { console.log('비디오 로드 완료'); videoDuration = videoElem.duration; init(); }) let progress; let currentFrame; function init() { window.addEventListener('scroll', function () { progress = pageYOffset / (document.body.offsetHeight - window.innerHeight); console.log(progress); if (progress < 0) progress = 0; if (progress > 1) progress = 1; requestAnimationFrame(function() { videoElem.currentTime = videoElem.duration * progress; }) }); } </script> </body> </html> 복붙해서 사용하세요.

  • html/css
  • HTML/CSS
  • svg
  • 웹-디자인
  • 인터랙티브-웹
  • 인터랙티브-웹
  • 웹 디자인
  • 클론코딩
  • javascript
  • 클론코딩
mill 댓글 0 좋아요 0 조회수 677

안녕하세요 visual slide 질문이 있습니다.

해결됨

쉽게 배우고, 포트폴리오로 만드는 반응형 웹! #설화수

방금전 선생님의 강의를 완강하고 복습중인데 슬라이드 부분에 대해 질문이 있어서요. 강의하신내용에 vosual 슬라이드부분을 왼쪽으로 부드럽게 animate로 넘기고 싶은데 아직 제가 가진 지식으로는 혼자 작성해도 검색해보고 찾아봐도 안되서 질문드립니다. 코드 어떤부분을 고쳐야 하는지 여쭤봅니다.ㅜㅜ

  • html/css
  • 클론코딩
  • HTML/CSS
  • 반응형-웹
  • 반응형-웹
  • 클론코딩
김무준 댓글 1 좋아요 1 조회수 438

포스트 목록 페이지 수정하기2 중에서 막히는 부분이 있습니다. (미분류)

미해결

Do It! 장고+부트스트랩: 파이썬 웹개발의 정석

안녕하세요 선생님. 강의 열심히 듣고 있습니다^^; 다름이 아니라 아래와 같이 미분류 카운트가 입력되지 않아 오류가 발생하는 부분때문에 계속 찾아보았으나, 답답한 마음에 질문글을 남깁니다. 우선 카테고리 분류에서 프로그래밍, 문화&예술 까진 카운트가 잘 입력됩니다. 그렇지만 "미분류" 부분은 계속 () 으로 표시됩니다. 분명 미분류 부분이 존재함에도 불구하고, 카운트가 되지 않는 건 무엇이 잘못되었는지 도저히 알기가 어렵습니다. 혹시 확인이 가능할까요?^^;; test.py 실행시 오류화면 미분류() 카운트 부분을 주석처리하면 테스트는 잘 완료됩니다. 총 4개의 페이지에 대한 코드를 올려봅니다. test.py base.html views.py post_list.html test.py from django.test import TestCase, Client from django.contrib.auth.models import User from bs4 import BeautifulSoup from .models import Post, Category # Create your tests here. class TestView(TestCase): def setUp(self): self.client = Client() # 방문하는 사람의 브라우저다 Client() self.user_trump = User.objects.create_user( username='trump', password='somepassword' ) self.user_obama = User.objects.create_user( username='obama', password='somepassword' ) self.category_programming = Category.objects.create( name='programming', slug='programming' ) self.category_music = Category.objects.create( name='music', slug='music' ) self.post_001 = Post.objects.create( title='첫 번째 포스트입니다.', content='Hello, world, we are the world', category=self.category_programming, author=self.user_trump, ) self.post_002 = Post.objects.create( title='두 번째 포스트입니다.', content='1등이 전부는 아니잖아요. 저는 개발을 좋아할겁니다.', category=self.category_music, author=self.user_obama, ) self.post_003 = Post.objects.create( title='세 번째 포스트입니다.', content='Category 가 없을 수도 있죠.', author=self.user_obama, ) def navbar_test(self, soup): navbar = soup.nav self.assertIn('Blog', navbar.text) self.assertIn('about_me', navbar.text) logo_btn = navbar.find('a', text='Do it Django') self.assertEqual(logo_btn.attrs['href'], '/') home_btn = navbar.find('a', text='Home') self.assertEqual(home_btn.attrs['href'], '/') blog_btn = navbar.find('a', text='Blog') self.assertEqual(blog_btn.attrs['href'], '/blog/') about_me_btn = navbar.find('a', text='about_me') self.assertEqual(about_me_btn.attrs['href'], '/about_me/') def category_card_test(self, soup): categories_card = soup.find('div', id='categories-card') self.assertIn('Categories', categories_card.text) self.assertIn( f'{self.category_programming} ({self.category_programming.post_set.count()})', categories_card.text ) self.assertIn( f'{self.category_music} ({self.category_music.post_set.count()})', categories_card.text ) self.assertIn( f'미분류 ({Post.objects.filter(category=None).count()})', categories_card.text ) def test_post_list_with_posts(self): self.assertEqual(Post.objects.count(), 3) # 1.1 포스트 목록 페이지 (post_list)를 연다. response = self.client.get('/blog/') # 1.2 정상적으로 페이지가 로드된다. self.assertEqual(response.status_code, 200) # 1.3 페이지 타이틀에 Blog 라는 문구가 있다. soup = BeautifulSoup(response.content, 'html.parser') self.assertIn('Blog', soup.title.text) self.navbar_test(soup) self.category_card_test(soup) # 3-2. 포스트 목록 페이지를 새로 고침 했을 때, response = self.client.get('/blog/') soup = BeautifulSoup(response.content, 'html.parser') # 3-3. 메인영역에 포스트 2개의 타이틀이 존재한다. main_area = soup.find('div', id='main-area') self.assertNotIn('아직 게시물이 없습니다.', main_area.text) post_001_card = main_area.find('div', id='post-1') self.assertIn(self.post_001.title, post_001_card.text) self.assertIn(self.post_001.category.name, post_001_card.text) post_002_card = main_area.find('div', id='post-2') self.assertIn(self.post_002.title, post_002_card.text) self.assertIn(self.post_002.category.name, post_002_card.text) post_003_card = main_area.find('div', id='post-3') self.assertIn(self.post_003.title, post_003_card.text) self.assertIn('미분류', post_003_card.text) self.assertIn(self.post_001.author.username.upper(), main_area.text) self.assertIn(self.post_002.author.username.upper(), main_area.text) self.assertIn(self.post_003.author.username.upper(), main_area.text) def test_post_list_without_post(self): Post.objects.all().delete() self.assertEqual(Post.objects.count(), 0) response = self.client.get('/blog/') self.assertEqual(response.status_code, 200) soup = BeautifulSoup(response.content, 'html.parser') self.navbar_test(soup) self.assertIn('Blog', soup.title.text) # 2-2. 메인영역에 "아직 게시물이 없습니다." 라는 문구가 나온다. main_area = soup.find('div', id='main-area') self.assertIn('아직 게시물이 없습니다.', main_area.text) def test_post_detail(self): self.assertEqual(Post.objects.count(), 3) # 1.2 그 포스트의 url은 '/blog/1/' 이다. self.assertEqual(self.post_001.get_absolute_url(), '/blog/1/') #.2. 첫 번째 포스트의 상세 페이지 테스트 # 2-1. 첫 번째 포스트의 url로 접근하면 정상적으로 작동한다. (status code : 200). response = self.client.get(self.post_001.get_absolute_url()) self.assertEqual(response.status_code, 200) soup = BeautifulSoup(response.content, 'html.parser') # # 2-2. 포스트 목록 페이지와 똑같은 네비게이션 바가 있다. self.navbar_test(soup) # 2-3. 첫 번째 포스트의 제목이 웹 브라우저 탭 타이틀에 들어있다. self.assertIn(self.post_001.title, soup.title.text) # 2-4. 첫 번째 포스트의 제목이 포스트 영역에 있다. main_area = soup.find('div', id='main-area') post_area = main_area.find('div', id='post-area') self.assertIn(self.post_001.title, post_area.text) # # 2-5. 첫 번째 포스트의 작성자(author)가 포스트 영역에 있다. (아직 구현할 수 없음) self.assertIn(self.user_trump.username.upper(), post_area.text) # # 2-6. 첫 번째 포스트의 내용(content)이 포스트 영역에 있다. self.assertIn(self.post_001.content, post_area.text) base.html <!DOCTYPE html> {% load static %} <html> <head> <title>{% block head_title %} Blog | 하도영 웹사이트 {% endblock %}</title> <link href="{% static 'blog/bootstrap/bootstrap.min.css' %}" rel="stylesheet" type="text/css"> <!-- <link href="./practice.css" rel="stylesheet" type="text/css"> --> <!-- 주석처리 키 ctrl + / --> <script src="https://kit.fontawesome.com/c1d4d1ab30.js" crossorigin="anonymous"></script> </head> <body> {% include 'blog/navbar.html' %} <div class="container"> <!-- 블로그 리스트 페이지 만들기 강의 5:04 blog 글자 부분 container 클래스에 의해 do it django 와 같은 간격으로 맞춰짐 --> <!-- 이 아래는 9:3, 좁을때는 8:4 로 나눌거임 --> <div class="row my-3"> <div class="col-md-8 col-lg-9", id="main-area"> {% block main_area %} {% endblock %} </div> <div class="col-md-4 col-lg-3"> <!-- Search widget--> <div class="card mb-4"> <div class="card-header">Search</div> <div class="card-body"> <div class="input-group"> <input class="form-control" type="text" placeholder="Enter search term..." aria-label="Enter search term..." aria-describedby="button-search" /> <button class="btn btn-primary" id="button-search" type="button">Go!</button> </div> </div> <!-- Categories widget--> <div class="card mb-4", id="categories-card"> <div class="card-header">Categories</div> <div class="card-body"> <div class="row"> <ul> {% for category in categories %} <li> <a href="#!">{{ category.name }} ({{ category.post_set.count }})</a> </li> {% endfor %} <!-- views.py 에 def get_context_data(self, **kwargs): 를 참고한다. --> <li> <a href="#!">미분류 ({{ no_category_post.count }})</a> </li> </ul> </div> </div> </div> </div> </div> </div> {% include 'blog/footer.html' %} <script src="https://cdn.jsdelivr.net/npm/jquery@3.5.1/dist/jquery.slim.min.js" integrity="sha384-DfXdz2htPH0lsSSs5nCTpuj/zy4C+OGpamoFVy38MVBnE+IbbVYUew+OrCXaRkfj" crossorigin="anonymous"></script> <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.6.2/dist/js/bootstrap.bundle.min.js" integrity="sha384-Fy6S3B9q64WdZWQUiU+q4/2Lc9npb8tCaSX9FK7E8HnRr0Jz8D6OP9dO5Vg3Q9ct" crossorigin="anonymous"></script> </body> </html> views.py from django.shortcuts import render from django.views.generic import ListView, DetailView from .models import Post, Category class PostList(ListView): model = Post # template_name = 'blog/post_list.html' ordering = '-pk' def get_context_data(self, **kwargs): context = super(PostList, self).get_context_data() context['categories'] = Category.objects.all() context['no_category_post.count'] = Post.objects.filter(category=None).count() # 미분류인 애들이 몇개인지 확인한다. filter기능을 이용해 none 인 애를 확인하고 count() 에 숫자를 담아 no_category_post.count에 넣어준다. return context class PostDetail(DetailView): model = Post template_name = 'blog/post_detail.html' # def index(request): # posts = Post.objects.all().order_by('-pk') # # pk는 순서대로 -pk 는 역순으로 최신 쓰레드가 위로 나오도록 조회 # return render( # request, # 'blog/index.html', # { # 'posts': posts, # } # ) # def single_post_page(request, pk): # post = Post.objects.get(pk=pk) # # return render( # request, # 'blog/single_page.html', # { # 'post': post, # } # ) post_list.html {% extends 'blog/base.html' %} {% block main_area %} <h1> Blog </h1> {% if post_list.exists %} {% for p in post_list %} <!-- Blog Post --> <div class="card mb-4", id="post-{{ p.id }}"> {% if p.head_image %} <img class="card-img-top" src="{{ p.head_image.url}}" alt="{{ p.title }}" /> {% else %} <img class="card-img-top" src="https://picsum.photos/seed/{{ p.id }}/600/200" alt="{{ p.title }}" /> {% endif %} <div class="card-body"> <!-- <div class="small text-muted">January 1, 2022</div>--> {% if p.category %} <span class="badge badge-secondary float-right">{{ p.category }} </span> {% else %} <span class="badge badge-secondary float-right">미분류</span> {% endif %} <h2 class="card-title h4">{{ p.title }}</h2> {% if p.hook_text %} <h5 class="text-muted">{{ p.hook_text }}</h5> {% endif %} <p class="card-text">{{ p.content | truncatewords:45 }}</p> <a href="{{ p.get_absolute_url }}" class="btn btn-primary">Read more →</a> </div> <div class="card-footer text-muted"> Posted on {{ p.created_at }} by <a href="#">{{ p.author | upper }}</a> </div> </div> {% endfor %} {% else %} <h1> 아직 게시물이 없습니다. </h1> {% endif %} <!-- Pagination--> <ul class="pagination justify-content-center my-4"> <li class="page-item"> <a class="page-link" href="#!">&larr; Older</a> </li> <li class="page-item disabled"> <a class="page-link" href="#!">Newer &rarr;</a> </li> </ul> {% endblock %}

  • html/css
  • django
  • HTML/CSS
  • docker
  • tdd
  • javascript
  • python
  • bootstrap
  • aws
몽상가 댓글 1 좋아요 0 조회수 468

인기 태그

인프런 TOP Writers

주간 인기글