이런 테이블을 가지고skillTxt를 기준으로 찾아서 이런 결과물을 뽑고싶었음 해결을 하긴 했는데 맘에 들지 않아서 좀 더 좋은 방법이 없을까 고민하다가지피티에게 장문의 편지를 보냈더니 해답을 주었따 대충 이러하당 SELECT temp.SKILL_CDS AS skillCds , GROUP_CONCAT(skill.SKILL_TXT ORDER BY FIND_IN_SET(skill.SKILL_CD, temp.SKILL_CDS)) AS skillTxt FROM TEMP AS tempLEFT JOIN SKILL AS skill ON FIND_IN_SET(skill.SKILL_CD, temp.SKILL_CDS) FIND_IN_SET () 함수는 쉼표로 구분된 문자열(temp.SKILL_CD..
Long bookResult = queryFactory .update(book) .set(book.bookStatus, 1) .where(book.bookNo.eq(bookNo)) .execute(); javax.persistence.TransactionRequiredException: Executing an update/delete query 책 대출 기능 개발 중, 대출하려는 도서의 대출 상태값을 수정하기 위해 querydsl로 update 구문을 실행하였으나 해당 Exception이 발생하면서 정지... update, delete구문을 실행할 땐 transaction 내에서 실행을 해야 하기 때문에 해당 메서드에 @Transactional 어노테이션을 붙여 해결하였다. @Override @Trans..
그냥... 한 번 해봤따. 응답 데이터가 좀 더 복잡한 api를 원했는데 승인이 너무 안 나서 일단은 간단한 것 먼저 시도해보았다. 사실 뭔가 구구절절 설명을 할만한 구문이 딱히 없는 것 같아서 기록 남기기 정도로 써본다... 코드는 여기에... : https://github.com/rriverr/OpenApiToDB JPA를 사용해보니 생각만큼 복잡하진 않은데, 해당 API는 총 데이터가 600개 언저리라 대용량이라고 할만한 데이터를 다뤄보지 못해서 좀 아리까리하다... 조만간 데이터 승인 나면 해보는 걸로! 600개 정도를 한 번에 조회하여 집어넣을때 약 15~20초정도 소요된 것 같은데 그럼 10000개에 5분정도 걸리려나... 조금 찾아보니 DTO+JDBC를 사용했을 때 제일 빠른 경우가 있다고 ..
@OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "bookNo", referencedColumnName = "bookNo") private Book book; @OneToOne 일대일(One-to-One) 관계의 테이블 컬럼을 가져올 때. 그 외 다대일(@ManyToOne), 일대다(@OneToMany), 다대다(@ManyToMany) 등 지금은 책 한 권에 대한 해당 책의 별점 레코드를 가져오는 상황이므로 1:1 fetch = FetchType.LAZY 지연로딩. LAZY를 사용하면 연관 엔티티에 접근하는 시점에 쿼리가 실행된다. 필요한 경우에만 데이터를 가져오므로 성능 최적화 반대는 FetchType.EAGER 부모 엔티티가 로드되는 순간 함께 로드된다...
Spring Security를 추가한 경우 이렇게 어플리케이션을 시작하고 어느 경로로 들어가던 login창이 뜨는 경우가 있다. 이는 스프링 시큐리티가 모든 url 요청을 가로채 검증을 요구하기 때문이다. 기본적으로 계정 정보는 username : user password : 콘솔창에 출력되는 비밀번호 를 입력하면 접속할 수 있다. 이렇게 로그인을 진행하면 자체적으로 세션이 생성되는데, 우린 따로 회원가입/로그인 과정을 DB와 함께 직접 구현하기 때문에 굳이 이 페이지가 필요하지 않다. 그리고 계속 구현을 진행하며 테스트할땐 귀찮기도 하구... 🙄 1️⃣ 어노테이션을 통해 인증 과정 없애기 @SpringBootApplication(exclude = SecurityAutoConfiguration.class..
프로젝트를 진행할 때마다 수많은 외부 라이브러리들을 직접 파일로 다운로드 받아 알맞는 경로의 폴더에 넣어가며 관리해야 한다면 굉장히 피곤할 것이다... maven과 gradle은 이런 귀찮은 작업들을 손쉽게 해결할 수 있도록 도와주는 빌드 관리 도구이다. 각각의 설정파일에 의존성을 주입해주면 알아서! 자동으로! 네트워크를 통해 다운로드를 받는다. - Maven 메이븐은 상술한 귀찮은 작업들을 간소화할 수 있도록 도와준다. 필요한 라이브러리를 프로젝트 최상위 디렉토리의 pom.xml 파일에 dependency로 주입해주면 알아서 내가 사용하려 하는 라이브러리 뿐만 아니라 해당 라이브러리가 작동할 때 필요한 다른 라이브러리까지 관리하여 다운로드 받아준다. 문법이 복잡한 편은 아니지만 끝없이 가 이어지다보면 ..