문제) DataClient 에서 Hibernate 의 ConstraintViolationException 이 DataAccessException 으로 던져지지 않았습니다. (발생한 예외 - 예상한 기댓값이 아님) Exception in thread "main" org.hibernate.exception.ConstraintViolationException: could not execute statement [Unique index or primary key violation: "PUBLIC.UK43EGXXCIQR9NCGMXBDX2AVI8N_INDEX_8 ON PUBLIC.ORDERS(NO NULLS FIRST) VALUES ( /* 1 */ '100' )"; SQL statement: 원인) Order Object 에서 @GeneratedValue 의 strategy 를 IDENTITY 로 작성해서 발생한 문제였습니다. @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; (변경된 예외 - 예상 기댓값으로 동작 성공) Exception in thread "main" org.springframework.dao.DataIntegrityViolationException: could not execute statement [Unique index or primary key violation: "PUBLIC.UK43EGXXCIQR9NCGMXBDX2AVI8N_INDEX_8 ON PUBLIC.ORDERS(NO NULLS FIRST) VALUES ( /* 1 */ '100' )"; SQL statement: 질문사항) 안녕하세요 토비님. 위에 작성된 문제점을 발견했고 해결했음에도 JPA를 학습해보지 않아서 그런지.. 위 문제가 발생한 이유를 모르겠습니다. 대충 생각하기에는 IDENTITY strategy가 DB로 권한을 넘기기 때문에 EntityManager 의 영속성 컨텍스트에서 발생한 문제점이 아니라서 DataAccessException Layer에서 관리하지 못하는 것인가..? 라는 생각은 드는데 혹시 맞을까요? 비슷한 상황을 만들어보려고 IDENTITY strategy를 설정하지 않고 OrderRepository 에서 flush 를 해본 결과, 예상대로 ConstraintViolationException 가 뜨긴 하는데 ID가 null 이라서 DB에서 직접 접근 후 저장하는 작업을 한 번 해서 그럴까요?
package nested.local; import java.lang.reflect.Field; public class LocalOuterV3 { private int outInstanceVar = 3; public Printer process(int paramVar) { int localVar = 1; //지역 변수는 스택 프레임이 종료되는 순간 함께 제거된다. class LocalPrinter implements Printer{ int value = 0; @Override public void print() { System.out.println("value = " + value); //인스턴스는 지역 변수보다 더 오래 살아남는다. System.out.println("localVar = " + localVar); System.out.println("paramVar = " + paramVar); System.out.println("outInstanceVar = " + outInstanceVar); } } LocalPrinter printer = new LocalPrinter(); //printer.print();를 여기서 실행하지 않고 Printer 인스턴스만 반환한다. return printer; } public static void main(String[] args) { LocalOuterV3 localOuter = new LocalOuterV3(); Printer printer = localOuter.process(2); //printer.print()를 나중에 실행한다. process()의 스택 프레임이 사라진 이후에 실행 printer.print(); //추가 System.out.println("필드 확인"); Field[] fields = printer.getClass().getDeclaredFields(); for (Field field : fields) { System.out.println("field = " + field); } } } 안녕하세요 이 부분에서 막혀서 이 강의만 3번째 듣는데도 이해가 안가서 기본편의 섹션 7 자바 메모리 구조와 static쪽을 다시 보고 오려는데 그것 말고 위의 코드를 이해하는데 더 필요한 내용이 있을까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 엔티티에 Getter와 Setter를 넣어주는 이유가 궁금합니다. 엔티티를 짤 때 다대다 관계를 넣으면 안되는 이유가 궁금합니다 3.
16:17 print('Combined ~', ~); 에서 %.5lf 가 궁금합니다. 일단 %.5f 라면 소수점 다섯번째자리 표시하는 건데, 이때 반올림을 하는 건가요? 그리고 %.5f 사이에 있는 'l'의 의미를 모르겠습니다. 18:11 float fnum = 3.14f; 라고 되어있는데 3.14 뒤에 붙은 f는 오타일까요? 아니면 다른 뜻이 있는 건가요? 출력 결과를 보면 f는 없는 글자처럼 사용된 것 같아 여쭤봅니다.
질문을 온전히 이해할 수 있도록, 모든 맥락을 전달해주세요. 질문은 질문자가 번거로워야 보다 좋은 답변을 얻으실 수 있습니다. 시행착오를 알려주시면 곧바로 원하는 문제에 집중할 수 있습니다. 오류 메시지는 일부만 알려주시기보다 전체 오류 메시지를 캡처해서 주시면, 오류 파악에 도움이 됩니다. 당신의 파이썬/장고 페이스메이커가 되겠습니다. ;-) 인프런 서비스 운영 관련다문의는 1:1 문의하기를 이용해주세요. 강의를 쭉 따라가면서 실습 중입니다. 강의 자료를 그대로 복사 붙여넣기 하였는데, reviews/new reviews/<pk>/ reviews/<pk>/edit 는 정상 작동하나 reviews/ 의 경우, localhost:8000/accounts/login/?next=/blog/reviews/ 로 redirect 되고 accounts/login이 정의되지 않아 404 not found 에러가 발생합니다 강의 순서 상 profile edit만 accounts app에 구현되어 있는 상황입니다. 하기와 같이 잘 복사해서 사용하였는데 왜 이런 오류가 발생할까요? # views.py review_list = ListView.as_view( model=Review, ) # urls.py path("reviews/", views.review_list, name="review_list"),
안녕하세요, 비교연산자와 반복문+조건문 문제풀이에서 15:33 부분 질문이 있습니다.보면 b%2==0은 짝수일 때 sum=sum+b이고 홀수일 때는 sum=sum-b로 이해하면 될까요?그리고 해당 계산식이 끝나고 a++로 되있는데 제가 알기로는 a++이면 나중에 증가로 알고있는데 a는 나중에 1증가인가요 아니면조건식이 끝나고 b에 2증가하는 것처럼 바로 1증가시키면 되는건가요?
영속성 컨텍스트는 서버 인스턴스 내부의 트랜잭션 기준말고 별도의 추가 기준이 있나요? 현재 진행 중인 프로젝트에서 프론트는 리액트로 진행 중인데 리액트로 호출하면 수정하기 이전의 쿼리로 조회한 데이터가 여전히 조회됩니다. 그런데 해당 페이지에서 개발자 도구를 켜서 fetch 메소드로 조회하거나 포스트맨으로 조회하면 새로운 버전의 쿼리로 조회한 데이터가 조회됩니다. 혹시 결과가 다른 이유가 있을까요? 그리고 서버가 재시작됬는데도 데이터가 똑같은 이유가 있을까요? 배포는 도커랑 깃랩 러너로 하고 있습니다.
강의자료를 기반으로 코드를 작성하여 왔는데, 실행하는 것에는 문제는 없으나, 회원 목록 조회 기능에서 whitelabel error page가 발생하였습니다. 어떻게 해야하나요? github 저장소: https://github.com/devcjw/Spring-Boot-Study
안녕하세요 일코님 좋은 강의를 해주셔서 감사합니다. 제가 지금 하고 있는 작업은 한글파일이 pdf파일로 변환된 파일을 다시 한글파일로 변환하는 것입니다. 이때, 한PDF를 사용하면 한글파일로 아주 나이스하게 변환되는 것을 보고 이걸 파이썬으로 자동화할 수 없을까 고민하고 있습니다. pdf를 일반 파이썬 라이브러리로 읽어와서 text로 변환하는 코드말고 한pdf의 기능을 이용하여 pdf를 한글파일로 바로 변경할 수 있는 라이브러리나 코드가 있을까요? 늘 감사드립니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. Order status 는 enum으로 만들었는데 이게 왜 그런건지 까먹었어요 스프링 기본에서 썼었던거 같은데…
정적변수, 정적메서드 5:03초에서 정적 메서드는 정적변수에만 접근 가능하다고 했습니다. 그런데 person p1 = new person()에서 public person()으로 먼저 접근하고 public static in popultation = 0으로 가는데, public person()은 인스턴스 메서드가 아닌가요? 어떻게 이런 절차로 접근이 되는건지 궁금합니다. 반면에 8:20에 나오는 예문에는 Counter.increment() 실행하면 public static void increment() (static메소드죠)로 가서 count++이 실행되고 privat static in count = 1로 반영이 됩니다. 질문의 요지는 static은 static만 참조 가능하다고 말씀하셨는데, 어떻게 첫번째 경우처럼 실행이 가능한가입니다.