/Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home/bin/java -javaagent:/Applications/IntelliJ IDEA.app/Contents/lib/idea_rt.jar=60512:/Applications/IntelliJ IDEA.app/Contents/bin -Dfile.encoding=UTF-8 -classpath /Users/jeong-yeongmin/Downloads/study/JPA/jpa-basic/target/classes:/Users/jeong-yeongmin/.m2/repository/org/hibernate/hibernate-entitymanager/5.3.10.Final/hibernate-entitymanager-5.3.10.Final.jar:/Users/jeong-yeongmin/.m2/repository/org/jboss/logging/jboss-logging/3.3.2.Final/jboss-logging-3.3.2.Final.jar:/Users/jeong-yeongmin/.m2/repository/org/hibernate/hibernate-core/5.3.10.Final/hibernate-core-5.3.10.Final.jar:/Users/jeong-yeongmin/.m2/repository/org/javassist/javassist/3.23.2-GA/javassist-3.23.2-GA.jar:/Users/jeong-yeongmin/.m2/repository/antlr/antlr/2.7.7/antlr-2.7.7.jar:/Users/jeong-yeongmin/.m2/repository/org/jboss/jandex/2.0.5.Final/jandex-2.0.5.Final.jar:/Users/jeong-yeongmin/.m2/repository/com/fasterxml/classmate/1.3.4/classmate-1.3.4.jar:/Users/jeong-yeongmin/.m2/repository/javax/activation/javax.activation-api/1.2.0/javax.activation-api-1.2.0.jar:/Users/jeong-yeongmin/.m2/repository/org/dom4j/dom4j/2.1.1/dom4j-2.1.1.jar:/Users/jeong-yeongmin/.m2/repository/org/hibernate/common/hibernate-commons-annotations/5.0.4.Final/hibernate-commons-annotations-5.0.4.Final.jar:/Users/jeong-yeongmin/.m2/repository/javax/persistence/javax.persistence-api/2.2/javax.persistence-api-2.2.jar:/Users/jeong-yeongmin/.m2/repository/net/bytebuddy/byte-buddy/1.9.5/byte-buddy-1.9.5.jar:/Users/jeong-yeongmin/.m2/repository/org/jboss/spec/javax/transaction/jboss-transaction-api_1.2_spec/1.1.1.Final/jboss-transaction-api_1.2_spec-1.1.1.Final.jar:/Users/jeong-yeongmin/.m2/repository/com/h2database/h2/1.4.200/h2-1.4.200.jar hellojpa.JpaMain 10월 09, 2022 4:58:00 오전 org.hibernate.jpa.internal.util.LogHelper logPersistenceUnitInformation INFO: HHH000204: Processing PersistenceUnitInfo [ name: hello ...] 10월 09, 2022 4:58:00 오전 org.hibernate.Version logVersion INFO: HHH000412: Hibernate Core {5.3.10.Final} 10월 09, 2022 4:58:00 오전 org.hibernate.cfg.Environment <clinit> INFO: HHH000206: hibernate.properties not found Exception in thread "main" java.lang.NoClassDefFoundError: javax/xml/bind/JAXBException at org.hibernate.boot.spi.XmlMappingBinderAccess.<init>(XmlMappingBinderAccess.java:43) at org.hibernate.boot.MetadataSources.<init>(MetadataSources.java:86) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:212) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.<init>(EntityManagerFactoryBuilderImpl.java:174) at org.hibernate.jpa.boot.spi.Bootstrap.getEntityManagerFactoryBuilder(Bootstrap.java:76) at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilder(HibernatePersistenceProvider.java:171) at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:119) at org.hibernate.jpa.HibernatePersistenceProvider.getEntityManagerFactoryBuilderOrNull(HibernatePersistenceProvider.java:61) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:50) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at hellojpa.JpaMain.main(JpaMain.java:10) Caused by: java.lang.ClassNotFoundException: javax.xml.bind.JAXBException at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:581) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:178) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:522) ... 12 more Process finished with exit code 1 안녕하세요. 원래 gradle을 사용하다가 강의를 보면서 maven을 사용중인데 원래 설치했던 환경이 달라 그런지 계속 오류가 뜹니다. pom.xml도 아예 초기 세팅이 <properties>까지 포함하게끔 나와서 디폴트로 주는 거는 그냥 두고 강의 코드를 복사 붙여넣기 했는데 어떤식으로 바꿔야 되는지 모르겠습니다. 아래는 pom.xml코드입니다. <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>org.example</groupId> <artifactId>jpa-basic</artifactId> <version>1.0-SNAPSHOT</version> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <!-- JPA 하이버네이트 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>5.3.10.Final</version> </dependency> <!-- H2 데이터베이스 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.200</version> </dependency> </dependencies> </project>
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 혼자 프로젝트를 만들다가 특정 Type 별로 정렬을 수행해야 하는 경우가 생겨 검색하다 QueryDSL을 이용하여 orderBy Case 구문을 사용하는 방법이 궁금하여 질문을 남기게 되었습니다. 정확하게는 OneToMany 관계인 경우, Many 쪽의 요소를 정렬하고자 할 때의 방법을 잘 모르겠어서 질문드려요! Store < === > Menu 위의 두 엔티티가 OneToMany 관계로 연관되어 있고, 매장 상세 정보에서 메뉴를 출력하는 경우, Menu의 Type 필드( MAIN, DESSERT, DRINK, BEVERAGE)를 기준으로 orderBy를 수행하려고 합니다. 현재 제가 구현한 방식은 < 특정 매장에 속한 메뉴 조회하는 로직 > < 매장의 정보를 조회하는 코드 > 매장을 조회하는 로직에서 한 번에 처리하려고 하니 방법이 생각나지 않아 두 쿼리를 분리하여 메뉴는 위의 코드에서 조회하고, 아래에서는 매장의 나머지 정보만 불러오는 형식으로 구현돼있습니다. 또한 매장 정보 조회 시, DTO에선 순수 매장 정보만을 불러오는 형식이라 메뉴를 조회하는 쿼리가 중복으로 나가진 않습니다! 연관 관계에 놓여 있는 엔티티를 별도의 조회 쿼리를 작성하여 불러오는 것이 이런 경우 맞는 방법인지 아니면 제가 아직 부족하여 놓친 하나로 합쳐서 조회할 수 있는 좋은 방법이 있는지 궁금합니다!! 긴 글 읽어주셔서 감사합니다!
영한님께서 일대다[1:N]강의에서 1:40 ~ 1:50초 사이에 DB설계관점에서 보면 외래키가 다쪽에 외래키가 들어가는것이 좋으며, team쪽에 memberId가 있으면 team을 계속 insert해야하며, team이 중복이 되어 1이 아닌 N이 된다고 하셨는데 이 부분들이 이해하기가 어려웠습니다. 외래키가 "다"쪽에 있으면 좋은 이유들과 이 부분들의 이해가 부족할 때 어떤 것들을 공부하면 좋을것 같을지도 알려주시면 감사하겠습니다. 영한님의 좋은 강의 덕분에 처음 듣는 내용들인데도, 이해가 잘돼서 너무 좋네요. 좋은 강의 감사합니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] <html xmlns:th=" http://www.thymeleaf.org "> 을 인식하지 못한다고 나옵니다! 어떤식으로 해결해야 할까요?
엔티티를 조회해서 dto로 변환할 시에 강사님은 controller에 내부 클래스 방식을 이용하셨습니다. 그 이유가 어차피 dto가 화면에 의존적이기 때문에 controller에 내부클래스 방식으로 하신건지 아니면 원래는 따로 dto페키지를 만들어서 사용하는 게 맞으나 수업을 위해서 그러신건지 궁금합니다. 결론적으로는 dto의 위치를 어떻게 가져가는 것이 맞는 지 궁금합니다. controller의 내부 클래스 dto페키지생성 repository 그 외 4가지 중 어디에 두어야 할 지 궁금합니다.
저는 아래와 같이 nx가 7이 될때 return을 해줘야 한다고 생각했습니다. 왜냐하면 distance 배열에서 거리를 입력하는데, 7,7에 도착하는 순간 return을 한 그 순간의 값이 최단경로의 길이라고 생각했습니다. return을 해주지 않는다면 distance[7][7]의 값이 최단 거리가 아닌 가장 긴 거리의 값으로 덮어써 진다고 생각을 했는데, 왜 (nx ==7 && ny == 7)경우 return 하게끔 예외처리를 해주지 않아도 되는지 궁금합니다. for (int i = 0; i < 4; i++) { int nx = x + dx[i]; int ny = y + dy[i]; // if (nx ==7 && ny == 7) { // distance[nx][ny] = distance[x][y] + 1; // answer = distance[nx][ny]; // return; // } if (nx >= 1 && nx <= 7 && ny >= 1 && ny <= 7 && board[nx][ny] == 0) { // 범위 안이고 해당 좌표의 값이 0 일 경우 board[nx][ny] = 1; distance[nx][ny] = distance[x][y] + 1; queue.offer(new Point(nx, ny)); } }
우선 너무 자주 질문을 드리는 것 같아 죄송합니다. SuccessHandler를 입력하고, 핸들러에 BreakPoint가 작동하지 않아 FailHandler와 denied를 만들어서 작동시켜 봤는데 SuccessHandler이외에는 정상 작동하는 것을 확인했습니다. 저에게는 코드에 이상한 부분이 보이지 않아 질문드리게 되었습니다. 전체 코드는 깃허브 Othkkartho/SpringSecurityLearn: 스프링 시큐리티 인프런 강의에 실전 프로젝트를 직접 해보는 프로젝트입니다. ( github.com ) 에 branches ch3.9,10,11입니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 제가 자바코드에 대한 이해가 깊지 않은 상태에서 수강 중입니다. 제 논리에 이해되지 않는 부분이 있어서 질문드립니다. 강의 중 코드 16줄에서 memberService 를 새로 만들었습니다. 그럼 memberService 안에 그 만의 memberRepository 가 생긴다고 생각했습니다. 그런데, clear를 위해 17줄에서 새로운 memberRepository를 만들고 있습니다. 이 memberRepository는 memberService 안의 memberRepository 와 다른 것이지 않나요?? 이 memberRepository를 clear하는 게 memberService 의 memberRepository 를 clear하는 행위가 아니라고 생각합니다. 제 부족함을 채워주시면 감사하겠습니다. 혹시 memberService 가 static이라 모두 같은 객체를 공유하는 건가요??
강사님 말씀대로 수정할 부분만 get/set기능이 잇는 dto를 만들어서 이용해봤습니다. 강사님이 계속 controller같은 곳에서는 setter의 이용을 제한하시라고 설명을 하셔서 저는 생성자를 만들어서 처리를 하였습니다. 근데 이부분에서 차라리 정정펙토리메서드를 이용해야하나 궁금증이 들었습니다. 제가 정적펙토리메서드를 질문란에서 공부한 결과로는 상속관계가 아니면 정적펙토리메서드를 사용하는 것이 장점이 많은 것으로 공부를 하였는데요 제가 한 코드처럼 이곳에 정적펙토리메서드를 적용하는 것이 괜찮은 방법인지 궁금합니다. 만약에 이 방법이 괜찮다면 앞으로 항상 수정코드시에 updateDto를 만들때는 정적펙토리메서드를 이용하여 수정해도 되나요??
강의에서는 수업을 위해 다운캐스팅을 사용하셨다고 하셨습니다. 그러면 상속관계에서는 book,Album,Movie관련 서비스를 만들고 BookForm, AlbumForm, MovieForm을 만들고 @Mapping도 book, album, movie에 대해서 다 만들고 대신에 repository만 itemrepository로 하나로 해서 관리하는 방식을 사용해야한다고 생각합니다. 제가 생각한 것이 괜찮은 방법이 맞는 지 궁금하고 아니라면 어떻게 해야하는 지 궁금합니다.
안녕하세요. 혼자 고민하고 생각 해보다 해결이 되지 않아 문의드리러 왔습니다 ㅠㅠ 해당 수업을 듣고, 사이드 프로젝트를 수행하면서 orphanRemoval을 사용해보게 되었습니다. 대략적인 엔티티간의 관계는 다음과 같습니다. 총 4개의 엔티티가 각각 다대일 매핑으로 이루어져 있는데요. 각 엔티티의 정보는 다음과 같습니다. 엔티티 A : 유저 엔티티 B : 글 엔티티 C : 글에 포함되는 정보 엔티티 D : 엔티티 C에 포함되는 정보 문제는 엔티티 B까지만 cascade=ALL, orphanRemoval=true가 적용된다는 것입니다..ㅠㅠ 차이가 있다면, 엔티티 A는 유저의 정보라서, 항상 저장이 되어있는 것을 꺼내어와서 사용한다는 것이고(저장을 회원가입 로직에서만 수행합니다.), 엔티티 B, C, D는 글 작성 시 모두 새로 생성하여 사용한다는 점입니다. 저는 엔티티B 삭제 로직에서, 엔티티A의 List에서 엔티티B를 remove 하면 B, C, D가 모두 삭제되는 것을 기대했는데, 전혀 삭제가 되지 않습니다 ㅠ (List에서 엔티티B가 제거는 됩니다..) 오히려 엔티티A의 List에서 엔티티B을 remove하고, 추가적으로 엔티티B의 리포지토리에서 엔티티 B를 삭제해야만 비로소 삭제가 완료됩니다. 기능 자체를 구현은 했지만, 이렇게 동작하는 원인을 알고싶어서, 여기저기 찾아보다가 답을 찾지 못해 이곳에 질문 글을 남기게 되었습니다 ㅠㅜ 관련 코드는 아래 깃허브 리포지토리에 있습니다. 엔티티 리포지토리 https://github.com/SeolYoungKim/siders/tree/oauth2login/src/main/java/com/example/siderswebapp/domain 삭제 로직 리포지토리 https://github.com/SeolYoungKim/siders/tree/oauth2login/src/main/java/com/example/siderswebapp/service/post
안녕하세요 궁금한게 있어 글 남깁니다 강의 7:30쯤에서 Integer.valueOf 해도 되지만 new Integer를 사용하겠다, 요즘은 new Integer가 별로 안 좋다고 한다~ 라고 말씀하셨는데요 new Integer가 좋지 않은 이유가 궁금합니다 나름 열심히 구글링 해보았는데 정확한 이유를 찾지 못해 여쭤봅니다 ㅠㅠ