자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
Caused by: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'bookService' defined in file [C:\Users\user\OneDrive\���� ȭ��\����ڷ�\Java_Spring_Library_Application new\library-app\library-app\build\classes\java\main\com\group\libraryapp\service\book\BookService.class]: Unsatisfied dependency expressed through constructor parameter 1; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userLoanHistoryRep' defined in com.group.libraryapp.repstory.user.userloan.UserLoanHistoryRep defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration: Invocation of init method failed; nested exception is org.springframework.data.repository.query.QueryCreationException: Could not create query for public abstract boolean com.group.libraryapp.repstory.user.userloan.UserLoanHistoryRep.existIsBookNameAndIsReturn(java.lang.String,boolean); Reason: Failed to create query for method public abstract boolean com.group.libraryapp.repstory.user.userloan.UserLoanHistoryRep.existIsBookNameAndIsReturn(java.lang.String,boolean)! No property 'existIsBookName' found for type 'UserLoanHistory'; nested exception is java.lang.IllegalArgumentException: Failed to create query for method public abstract boolean com.group.libraryapp.repstory.user.userloan.UserLoanHistoryRep.existIsBookNameAndIsReturn(java.lang.String,boolean)! No property 'existIsBookName' found for type 'UserLoanHistory' 요약해보면 자바의 DTO객채의 이름하고 mysql에있는 테이블의 이름과 일치 하지않아서오류가 발생하는듯하는듯한데 왜 오류가 발생할까요? 객채생성하고 테이블올려드릴게요
삭제 테스트중 의문점이 하나 있어서 질문드립니다 삭제를 위한 검색쿼리 Hibernate: select c1_0.cno from tbl_cart c1_0 left join tbl_cart_item c2_0 on c2_0.cart_cno=c1_0.cno where c2_0.cino=? 작성하지 않았는데 발생하는 쿼리 Hibernate: select c1_0.cino, c2_0.cno, o1_0.email, o1_0.nickname, o1_0.pw, o1_0.social, p1_0.pno, p1_0.del_flag, p1_0.pdesc, p1_0.pname, p1_0.price, c1_0.qty from tbl_cart_item c1_0 left join tbl_cart c2_0 on c2_0.cno=c1_0.cart_cno left join member o1_0 on o1_ 0.email =c2_0.member_owner left join tbl_product p1_0 on p1_0.pno=c1_0.product_pno where c1_0.cino=? 삭제쿼리 Hibernate: delete from tbl_cart_item where cino=? 삭제후 아이템 재검색쿼리 Hibernate: select c1_0.cino, c1_0.qty, p1_0.pname, p1_0.price, i1_0.file_name from tbl_cart_item c1_0 join tbl_cart c2_0 on c1_0.cart_cno=c2_0.cno left join tbl_product p1_0 on c1_0.product_pno=p1_0.pno left join product_image_list i1_0 on p1_0.pno=i1_0.product_pno where i1_0.ord=0 and c2_0.cno=? 삭제 쿼리시 위와같은 쿼리들이 실행되는데요 삭제를 위한 검색쿼리 후 알수없는 쿼리하나가 더 실행되는데 이쿼리가 실행되는 이유를 알고 싶습니다.
public class ReservationGoods extends BaseEntity { @ManyToOne @JoinColumn(name = "reservation_id") private Reservation reservation;} public class Reservation extends BaseEntity { @OneToMany(fetch = FetchType.LAZY,mappedBy = "reservation") private List<ReservationGoods> reservationGoods = new ArrayList<>(); } 네이버 헤어 예약처럼 시간상품이 하나의 주문에만 들어갈 수 있고 주문 하나의 여러개의 상품을 신청할 수 있어서 지금 db설계가 상품: 주문이 다대일 상황입니다 이게 상품이 생성될때는 주문관해서는 모르는상황이라 이거는 어쩔 수 없이 주문1 : 상품다 로 단방향 연결밖에 답이 없을까요?
안녕하세요. legacy시스템을 querydsl로 바꾸는 작업을 하고 있는데요. 몇몇 칼럼에서 아래와 같은 에러가 일어나 변환 작업에 어려움을 겪고 있습니다. @Column(name = "a_b_c") private String abc; 위의 entity a_b_c칼럼을 repository 단위 테스트할 경우 m1_0.a_b_c 칼럼명을 잘가지고 오는데 스프링에서 서블릿을 올려서 테스트 할 경우 아래와 같이 에러가 납니다. jakarta.servlet.ServletException: Handler dispatch failed: java.lang.NoSuchFieldError: abc at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1096) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:974) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1011) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:903) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:564) at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:885) at jakarta.servlet.http.HttpServlet.service(HttpServlet.java:658) Caused by: java.lang.NoSuchFieldError: abc at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:343) 칼럼명을 변경하면 해결이 가능하지만 레거시 시스템이므로 칼럼명 변경은 불가능합니다. 관련 내용에 대해 아시는분 이 있으시면 답글 부탁드립니다.
강의에서 토큰을 보관하기에 보안에도 좋고 적절한 곳이 쿠키라고 말씀해주셨는데 보통 쿠키에 저장을 많이 하는편일까요? 내년 하반기에 크롬에서 쿠키차단예정을 하고 있다고 들어서 왠지 다른 대체제가 필요할거같은데 쿠키를 사용 못하게 된다면 보통 클라이언트에서는 로컬스토리지 이외에는 대체제가 없는지 궁금합니다.
우선 일대일 관계로 매핑된 Order와 Delivery 엔티티 코드는 다음과 같습니다. <Order 클래스> @OneToOne @JoinColumn(name = "DELIVERY_ID") private Delivery delivery; <Delivery 클래스> @OneToOne(mappedBy = "delivery") private Order order; 일대일 관계를 명시하려면 외래키에 unique 제약조건을 추가해야 된다고 알고 있는데요. 이상한 점은 유니크 제약조건을 추가하지 않아도 아래와 같이 하이버네이트가 알아서 제약조건을 추가해줬다는 것입니다. 왜 이런 현상이 발생한거죠?
강의 :단방향 연관관계 20분 55초에서 쿼리가 안나온다는게 create table Team ( TEAM_ID bigint not null, TEAM_NAME varchar(255), primary key (TEAM_ID) ) 이게 안나오느다는건가요? 근데 persist로 db에 저장되서 안나온다고 하셨는데 12분에도 persist가 있는데도 쿼리가 나오는데요. 혹시 find 앞에 persist는 예외인건가요? try { Team team =new Team(); team.setName("TeamA"); em.persist(team);//영속 상태가 되면 pk값이 세팅 되고 영속 상태가 됨. Member member = new Member(); member.setUsername("member1"); // member.setTeamId(team.getId());//연관관계 매핑 배우기 전 팀의 외래키를 만들어서 멤버에 조인함. em.persist(member); tx.commit(); }catch (Exception e){ tx.rollback(); }finally { em.close();//엔티티 매니저가 내부적으로 데이터베이스를 물고 동작을 함. } emf.close(); } 단방향 연관관계 22분에서 em.flush(); em.clear(); 을 추가하면 영속성 컨테스트를 db로 보내버리고 동기화 상태에서 1차캐시가 빈상태로 조회가능하다는것은 알겠는데요. 그래서 다른점이 혹시 아래 select문인가요? Hibernate: select member0_.MEMBER_ID as MEMBER_I1_0_0_, member0_.TEAM_ID as TEAM_ID3_0_0_, member0_.USERNAME as USERNAME2_0_0_, team1_.TEAM_ID as TEAM_ID1_1_1_, team1_.TEAM_NAME as TEAM_NAM2_1_1_ from Member member0_ left outer join Team team1_ on member0_.TEAM_ID=team1_.TEAM_ID where member0_.MEMBER_ID=?
토큰적용 후 발생하는 현상에 대해서 질문드립니다. Product게시판에 이미지에 경우, 아래와 같이 표시가되는데요 이때 토큰을 헤더에 설정 되어있지않기떄문에 {"error":"ERROR_ACCESS_TOKEN"}가 발생합니다. jwtAxios를 사용하여 처리는 가능할듯한데 문제는 결과값이 문자열로 되돌아와서 이미지표시가 좀 힘들어보이고 어떻게 처리해야할지 모르겠습니다. 이런경우 어떠한방식으로 처리하는게 좋을까요? src={`${host}/api/products/view/s_${product.uploadedFileNames[0]}`}
1.7분에서 setter 보다 유지보수 때문에 생성자를 쓰는데 이유 좀 자세하게 알수 있나요? 2.9분 53초에서 뒤에 사용될 명령어 나오게 하는 단축키 뭔가요? 3.10분 45초에 @Table(name="Orders")//Orders로 한 이유가 에약어로 order은 orderby로 인식된다.(db마다 다름) 가 맞나요? 4.14분 10초처럼 아래 문구를 어떻게 public void setStockQuantity(int stockQuantity) { this.stockQuantity = stockQuantity; } public void setStockQuantity(int stockQuantity) {this.stockQuantity = stockQuantity;} 이렇게 바꾸나요? 5. 왼쪽화면은 제화면이고 오른쪽 화면은 강의 화면입니다. 빨간색 네모박스처럼 상위 폴더 하위 폴더가 안나뉘어집니다. 이렇게 어떻게 해야 하나요? 시도한 방법: jpabook.jpashop.domain1 을 domain1 이렇게 리팩터 시도를 하면 활성화가 안됩니다.
QueryDSL을 공부를 하다가 JPQL은 FROM절 없이 사용할 수 없다는 말을 들었습니다. 그래서 그렇구나 이해를 하기보다 정말 그런가 하고 찾아보려고 했는데 공식문서를 어디를 참조해야할지 모르겠더라구요 오라클 JPA 2.0에서 JPQL 설명이 있는데 그 부분을 참조하면 https://docs.oracle.com/javaee/6/tutorial/doc/bnbuf.html#bnbuj FROM 절은 식별 변수를 선언함으로써 쿼리의 도메인을 정의합니다. 라고 적혀있더라구요 SQL과 다르게 JPQL은 도메인을 기준으로 쿼리를 실행하기 때문에 FROM절을 생략할 수 없다고 이해하면 될까요 ?
1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] JdbcTemplateItemRepositoryV2 적용 후 아래 화면처럼 로그가 뜬다고 설명해주셨는데 제 PC 에서 실행 후 로그는 아래 화면 처럼 뜹니다. 이에 관해 몇가지 질문이 있습니다. 1.로그가 서로 다른 이유가 무엇인가요?? 본인 PC 로그 표시 레벨은 기본 레벨인 Info로 되어있었기 때문 2.어떻게 하면 강의 화면 처럼 로그가 띄울 수 있나요?? application.properties 파일에 logging.level.org .springframework.jdbc=DEBUG 속성 추가 (스프링 버전은 강사님이 첨부해주신 프로젝트를 가지고 사용한것이라 강의에서 사용된 프로젝트의 스프링 버전과 동일할 것으로 생각됩니다.) 두 가지 질문 답변 부탁드립니다. 감사합니다. 강의를 보다보니 답을 찾았습니다..... 세션 앞부분 강의에서 방법을 적어주셨었네요.... 제가 앞부분 강의를 제대로 집중해서 듣지 못했나봅니다.....
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
안녕하세요 태현님. 두가지 질문이 있습니다. 1. 지금까지(34강) 강의를 따라 하고 MySQL 워크벤치에서 ERD를 확인해 보면 테이블 간에 PK - FK로 연결이 안 되어있는데요 연결을 안 해주어도 괜찮은 이유가 뭔지 궁금합니다. 제가 NestJS나 Express.js 로 백엔드를 만들었을 때는 TypeORM, Prisma, Sequelize 같은 ORM을 이용했었는데 그때는 코드단에서 테이블 간에 연결 처리 (PK - FK로 연결)을 해주면 데이터베이스에서 확인을 해봤을 때 이런 식으로 연결이 된 것을 확인할 수 있었거든요.. 혹시 제가 뭔가 잘못 알고 있는 걸까요? 굳이 DB에서 실제로 연결을 안 해주어도 괜찮은 건가요?? 아니면 스프링 + JPA 조합의 특성인가요?? 2. 그리고 MySQL 워크벤치에서 create table user_loan_history ( id bigint auto_increment, user_id bigint, book_name varchar(255), is_return tinyint(1), primary key (id) ); 이렇게 DB create 문을 작성해서 실행 시키지 않아도 서버를 실행시킬 때 자동으로 로컬 DB에 테이블을 생성해 주도록 하는 설정이 있는지 궁금합니다.