묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
자바 버전을 다운받고 jdk, sdk 설정을 17이상으로 햇는데 오류가 뜹니다.
스프링강의 입문 강의를 따라 강의를 학습중입니다. java 20 버전으로 설정해 사용중, 설정과 project structure에 sdk, jdk를 모두 20버전으로 설정하엿습니다. 하지만 화면 과 같은 오류가 떠서 자바 버전을 찾을 수 없다고 하는데. 혹시 어떻게 해결해야 하나여? 밑에는 버전사진입니다.
-
미해결
spring-data-jpa 연습 중 순환참조 오류가 발생했습니다.
안녕하세요. 최근 spring-data-jpa 를 공부하다 이상한 순환 참조 오류를 발견했습니다.그런데 도통 납득이 되지 않아 여쭤보고자 질문 드립니다.spring-data-jpa 를 사용하기 전, 저는 주로 MyBatis 를 아래처럼 주로 사용했습니다.// 주로 mybatis interface 인 mapper 를 먼저 선언하고 @Mapper public interface MyBatisMapper {/* ... */} /* ------------ */ // DAO 객체에 주입해 사용하는 형태로 사용했습니다. @Repository public class MyBatisRepo { private final MyBatisMapper mapper; public MyBatisRepo(MyBatisMapper mapper) { this.mapper = mapper; } /* 생략 */ }그래서 JPA 에서도 이처럼 사용해 볼까 하는 마음에 연습하던 중, 순환참조 오류가 발생하였습니다. 아래는 spring-data-jpa 에서 오류가 발생한 코드입니다.TestEntity : 연습용 엔티티@Entity public class TestEntity { @Id private Long id; }DAO 인터페이스 : repository 규약public interface TestRepo { // 연습용이라 텅 비어있습니다. }JPA 인터페이스public interface JPATestRepo extends JpaRepository<TestEntity, Long> { // 연습용이라 텅 비어있습니다. }Repository 구현체@Repository public class JPATestRepoImpl implements TestRepo { private final JPATestRepo jpaRepo; public JPATestRepoImpl(JPATestRepo jpaRepo) { this.jpaRepo = jpaRepo; } // 연습용이라 이후 아무 내용도 없습니다. }실행시 발생하는 에러2024-10-19T19:46:00.760+09:00 WARN 66384 --- [testing] [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'JPATestRepoImpl' defined in file [/~~~/Desktop/Coding/testing/build/classes/java/main/core/testing/JPATestRepoImpl.class]: Unsatisfied dependency expressed through constructor parameter 0: Error creating bean with name 'JPATestRepoImpl': Requested bean is currently in creation: Is there an unresolvable circular reference? 2024-10-19T19:46:00.761+09:00 INFO 66384 --- [testing] [ main] j.LocalContainerEntityManagerFactoryBean : Closing JPA EntityManagerFactory for persistence unit 'default' 2024-10-19T19:46:00.762+09:00 INFO 66384 --- [testing] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown initiated... 2024-10-19T19:46:00.807+09:00 INFO 66384 --- [testing] [ main] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Shutdown completed. 2024-10-19T19:46:00.811+09:00 INFO 66384 --- [testing] [ main] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled. 2024-10-19T19:46:00.825+09:00 ERROR 66384 --- [testing] [ main] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: The dependencies of some of the beans in the application context form a cycle: ┌──->──┐ | JPATestRepoImpl defined in file [/~~~/Desktop/Coding/testing/build/classes/java/main/core/testing/JPATestRepoImpl.class] └──<-──┘ Action: Relying upon circular references is discouraged and they are prohibited by default. Update your application to remove the dependency cycle between beans. As a last resort, it may be possible to break the cycle automatically by setting spring.main.allow-circular-references to true. Process finished with exit code 1 콘솔 에러에 따르면 JPATestRepoImpl 가 자기 자신을 의존해 순환참조가 발생한다고 합니다.하지만 JPATestRepoImpl 는 (코드에서 볼 수 있듯이) JPATestRepo 를 주입받을 뿐, 자기자신을 의존하고 있지 않습니다. 게다가 더 혼란스러운 점은 만약 JPATestRepoImpl 의 이름을 다른 것으로 바꾸면 (예를 들어 TestRepoJPAImpl) 거짓말처럼 순환 참조 오류가 없어집니다. 제가 추측하기로는 스프링이나 JPA 가 bean 이름을 헷갈려 발생하는 오류 같은데, 이를 헷갈려 하는 이유를 도통 모르겠습니다.당연히 컴퓨터 재시작, 프로젝트 clean, rebuild, 프로젝트 재생성해 시도해봤지만 모두 같은 현상이 나타납니다. 도대체 어떤 이유 때문에 이런 현상이 일어나는 걸까요...?Github repo : https://github.com/jbw9964/testing
-
미해결
인텔리 제이 초기화면이 이상해요.
IntelliJ IDEA Community Edition > .dmg(intel) 순서로 다운받았습니다. 실행화면에 아무것도 없어요 어떻게 해야 설정화면이 나올까요? 잘못다운받은 걸까요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
temurin 21버전 project JDK misconfigured 뜨면 사용 못하나요?
새 프로젝트를 만들고 setup jdk버튼을 눌러 테뮤린21을 다운받았습니다. 프로젝트 스트럭쳐에서 테뮤린이 적용되었는데 빨간색이고, 홈화면엔 misconfigured가 떠있다면 못쓴다는 의미일까요?그렇담 대신에 오라클오픈22 jdk를 사용하면되나요?
-
해결됨오브젝트 - 기초편
IntelliJ IDEA 폰트를 알수 있을까요?
IntelliJ IDEA 기본 폰트를 사용하고 있는데 강사님께서 보여주시는 폰트를 보니 눈에 잘 들어오고 편해서 질문 드립니다.
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
다운로드 소스 코드 실행 방법 in 개발 환경 설정
다운로드 소스 코드 진행 방법 따라하는 중인데요,5:49 강의에는 overwrite 하겠냐고 뜨는데 저는 그렇게 안되고 안된다고만 뜹니다. 넘어갈 수 없는데 어떻게 하나요
-
미해결
자꾸 Incorrect API key provided라고 뜹니다.
Chatgpt api 키 발급받고 intellij의 https request 켜서 키 복사 버튼 눌러서 제대로 붙어넣기 했는데 자꾸 401이 뜨면서 이런 에러가 나옵니다.POST https://api.openai.com/v1/completions Content-Type: application/json Authorization: Bearer <sk-proj-nawrjQjyZsY97JLPn96lT3BlbkFJwKvp4wAikQ2ENDrll4Kq> { "model": "text-davinci-001", "prompt": "1+1은 몇이야?", "temperature": 1, "max_tokens": 10 }{ "error": { "message": "Incorrect API key provided: <sk-proj**********************************************4Kq>. You can find your API key at https://platform.openai.com/account/api-keys.", "type": "invalid_request_error", "param": null, "code": "invalid_api_key" } }뭐가 문제일까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
command+n 시 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]command + n을 했을때 강사님 처럼 class,interface를 지정할 수 있는 항목이 안뜹니다.
-
미해결
./gradlew build FAIL
프로젝트 생성 프로젝트 Structure 빌드 command 입력시 오류내용 PS C:\Users\82107\spring\demo> ./gradlew build FAILURE: Build failed with an exception. * What went wrong: A problem occurred configuring root project 'demo'. > Could not resolve all files for configuration ':classpath'. > Could not resolve org.springframework.boot:spring-boot-gradle-plugin:3.2.3. Required by: project : > org.springframework.boot:org.springframework.boot.gradle.plugin:3.2.3 > No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.2.3 was found. The consumer was configured to find a library for use during runtime, compatible with Java 8, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '8.6' but: - Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.3 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.6') - Variant 'javadocElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.3 declares a component for use during runtime, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 8) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '8.6') - Variant 'mavenOptionalApiElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.2.3 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component for use during compile-time, compatible with Java 17 and the consumer needed a component for use during runtime, compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.6') - Variant 'mavenOptionalRuntimeElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.2.3 declares a library for use during runtime, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.6') - Variant 'runtimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.3 declares a library for use during runtime, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component, compatible with Java 17 and the consumer needed a component, compatible with Java 8 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '8.6') - Variant 'sourcesElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.2.3 declares a component for use during runtime, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 8) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '8.6') * Try: > Review the variant matching algorithm at https://docs.gradle.org/8.6/userguide/variant_attributes.html#sec:abm_algorithm. > No matching variant errors are explained in more detail at https://docs.gradle.org/8.6/userguide/variant_model.html#sub:variant-no-match. > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. BUILD FAILED in 2s 비슷한 질문들을 확인하였는데, 버전 문제인 것 같긴한데, 현재 JDK18버전을 사용하고 있어서 그런것인가요?17버전으로 바꾸면 되나요? 만약에 그렇다고 한다면, 설정부분에서 어디어디를 바꿔주어야하나요?
-
미해결김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
Intellij 클래스만들때 질문
[질문 내용]사진처럼 클래스를 만들면 주황색글씨로 뜨는데 혹시 오류가 있어서 그런걸까요? 제 Git 계정이랑 연동해놔서 그런건지 아니면 뭐가 문제가 생겨서 저렇게 주황색으로 되는건지 모르겠습니다.
-
미해결김영한의 실전 자바 - 기본편
intellij package import 문제입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요?예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요?예3. 질문 잘하기 메뉴얼을 읽어보셨나요?예[질문 내용]안녕하세요. 섹션6 접근 제어자 사용 - 필드, 메서드 파트 청강 중 AccessOuterMain 클래스를 생성하여 AccessData 클래스를 import할 때 문제가 생겼습니다. 현재 저는 windows 환경에서 intellij community Edition 2023.1.2 버전을 사용중입니다. 디렉토리 구조는 다음과 같습니다. > src > access > a - AccessData - AccessInnerMain > b - AccessOuterMain - Speaker - SpeakerMain 다음은 access.a.AccessData 의 코드 내용입니다.package access.a; public class AccessData { public int publicField; int defaultField; private int privateField; public void publicMethod() { System.out.println("publicMethod 호출: " + publicField); } void defaultMethod() { System.out.println("defaultMethod 호출: " + defaultField); } private void privateMethod() { System.out.println("privateMethod 호출: " + privateField); } public void innerAccess() { System.out.println("내부 호출"); publicField = 100; defaultField = 200; privateField = 300; publicMethod(); defaultMethod(); privateMethod(); } } 다음은 access.b.AccessOuterMain 의 코드 내용입니다.package access.b; public class AccessOuterMain { public static void main(String[] args) { AccessData data = new AccessData(); // 해당 부분에서 AccessData가 code suggestions도 안나오고 직접 import를 해도 import를 할 수 없습니다. } } access.b.AccessOuterMain 의 코드에서 AccessData 가 import가 되지 않습니다. intellij에서 code suggestion도 안되고(다른 코드는 code suggestion 잘 됩니다.) 직접 import를 해도 AccessData에 빨간불이 들어옵니다. 왜 그럴까요?
-
해결됨
IntelliJ Plugin 설치 오류
IntelliJ IDEA 2023.3.2 (Community Edition) Build #IC-233.13135.103, built on December 20, 2023 Runtime version: 17.0.9+7-b1087.9 amd64 VM: OpenJDK 64-Bit Server VM by JetBrains s.r.o. Windows 10.0 GC: G1 Young Generation, G1 Old Generation Memory: 2048M Cores: 8 Registry: ide.experimental.ui=true Kotlin: 233.13135.103-IJ 플러그인을 설치하려하면 이렇게 오류가 납니다.어떻게해야할까요?(답장 (많이)늦을 수 있음)
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
영상처럼 한번에 국제화 보고 수정하는 방법
질문은 아니고 저처럼 다른 분들도 찾을까봐 남깁니다이렇게 보시는 부분이 있는데저도 저렇게 보고싶어서 찾아보니플러그인에서 검색으로 Resource bundle edit 이 플러그인을 설치하면 되더라구요
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
intellij run 버튼이 뜨지 않고 공백이 생기는 이유
안녕하세요,강사님을 따라서 intellij를 설치해보았습니다.그러나 run 버튼이 활성화되지 않고 다음과 같이 거대한 공백이 있습니다.줄번호도 없었는데 검색해서 켜봤습니다..그런데 나머지는 뭐라고 검색해야할지 모르겠습니다.어떤 문제일까요?
-
해결됨토비의 스프링 부트 - 이해와 원리
인텔리제이 뎁스 구분 선
저 별건 아니지만,,뎁스 구분 선이 뜨게 하는 설정 방법 알려주십사 질문 드립니다
-
미해결토비의 스프링 부트 - 이해와 원리
intellij community edition terminal http request
intellij community edition을 사용해 실습하고 있습니다. 섹션 2. Hello API 테스트와 같이 터미널에http -v ":8080/hello?name=Spring" 요청시 다음과 같은 에러가 뜨며 요청이 제대로 이루어지지 않습니다.혹시 ultimate 버전에서만 지원하는 기능이어서 그런건지 질문 드립니다. http : The term 'http' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.At line:1 char:1+ http -v ":8080/hello?name=Spring"+ ~~~~+ CategoryInfo : ObjectNotFound: (http:String) [], CommandNotFoundException+ FullyQualifiedErrorId : CommandNotFoundException
-
미해결
인텔리제이 톰캣 실행 오류
Connected to server[2023-09-12 10:27:48,081] Artifact edu-test:war exploded: Artifact is being deployed, please wait...12-Sep-2023 22:27:50.086 INFO [RMI TCP Connection(2)-127.0.0.1] org.apache.jasper.servlet.TldScanner.scanJars 적어도 하나의 JAR가 TLD들을 찾기 위해 스캔되었으나 아무 것도 찾지 못했습니다. 스캔했으나 TLD가 없는 JAR들의 전체 목록을 보시려면, 로그 레벨을 디버그 레벨로 설정하십시오. 스캔 과정에서 불필요한 JAR들을 건너뛰면, 시스템 시작 시간과 JSP 컴파일 시간을 단축시킬 수 있습니다.SLF4J: No SLF4J providers were found.SLF4J: Defaulting to no-operation (NOP) logger implementationSLF4J: See http://www.slf4j.org/codes.html#noProviders for further details.Debug is true storeKey false useTicketCache true useKeyTab false doNotPrompt true ticketCache is null isInitiator true KeyTab is null refreshKrb5Config is false principal is null tryFirstPass is false useFirstPass is false storePass is false clearPass is falseAcquire TGT from CachePrincipal is nullnull credentials from Ticket Cache[Krb5LoginModule] authentication failedUnable to obtain Principal Name for authentication12-Sep-2023 22:27:52.196 SEVERE [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal 하나 이상의 리스너들이 시작하지 못했습니다. 상세 내역은 적절한 컨테이너 로그 파일에서 찾을 수 있습니다.12-Sep-2023 22:27:52.254 SEVERE [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal 이전 오류들로 인해 컨텍스트 [/edu_test_war_exploded]의 시작이 실패했습니다.12-Sep-2023 22:27:52.269 WARNING [RMI TCP Connection(2)-127.0.0.1] org.apache.catalina.loader.WebappClassLoaderBase.clearReferencesJdbc 웹 애플리케이션 [edu_test_war_exploded]이(가) JDBC 드라이버 [org.mariadb.jdbc.Driver]을(를) 등록했지만, 웹 애플리케이션이 중지될 때, 해당 JDBC 드라이버의 등록을 제거하지 못했습니다. 메모리 누수를 방지하기 위하여, 등록을 강제로 제거했습니다.[2023-09-12 10:27:52,282] Artifact edu-test:war exploded: Error during artifact deployment. See server log for details.12-Sep-2023 22:27:57.592 INFO [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory 웹 애플리케이션 디렉토리 [C:\Users\aoehd\Downloads\apache-tomcat-9.0.79-windows-x64\apache-tomcat-9.0.79\webapps\manager]을(를) 배치합니다.12-Sep-2023 22:27:57.681 INFO [Catalina-utility-2] org.apache.catalina.startup.HostConfig.deployDirectory 웹 애플리케이션 디렉토리 [C:\Users\aoehd\Downloads\apache-tomcat-9.0.79-windows-x64\apache-tomcat-9.0.79\webapps\manager]에 대한 배치가 [89] 밀리초에 완료되었습니다. 이 오류가 계속해서 뜨고 톰캣이 실행이 안되는데 왜 그런지 아시나요? gpt한테 물어보긴했는데 무슨 켈베로스? 같은거 인증하라던데 무슨소리인지 잘 몰라서 여기서 물어봅니다 원래 톰캣 실행할때 저런 인증해야하는게 필요한가요? 처음 실행할때는 톰캣 실행 잘됐는데 나중에 인텔리제이 자체가 아무리 눌러도 켜지질 않아서 아예 완전 삭제하고 다시 설치해서 처음상태로 시작한다음 파일 받아서 톰캣 설정하고 바로 실행 눌렀는데 지금 한참동안 저러고 있고 바뀌질 않네요.. 인텔리제이가 안켜지는상황에서 강제 완전 삭제해서 톰캣이 실행이 안되는거려나요? 잘 모르겠습니다.. 도와주시면 감사하겠습니다..
-
해결됨
hibernate 6.x 에서 batch size의 전략 변경하기 아는 분 있으신가요?(batch_fetch_style deprecated issue)
https://www.inflearn.com/questions/34469위 링크를 참조해보면, 이전에 hibernate 의 batch size 기본전략이 legacy 임을 알 수 있습니다.하지만, 현재 사용 중인 hibernate 6.2 에서 @BatchSize 를 사용하면 기본적으로 dynamic 으로 조회되고 있습니다. 참고로 글로벌 설정으로 default_batch_fetch_size 를 설정해도 동일합니다. select ... from my_table m1_0 where m1_0.id in(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) binding parameter [1] as [INTEGER] - [5] binding parameter [2] as [INTEGER] - [1] binding parameter [3] as [INTEGER] - [null] ... binding parameter [98] as [INTEGER] - [null] binding parameter [99] as [INTEGER] - [null] binding parameter [100] as [INTEGER] - [null] 그래서 batch_fetch_style 을 직접 설정하려고 봤더니 hibernate 6.0 이후부터는 deprecated 되었고, MultiKeyLoadSizingStrategy 를 사용하라고 하네요. 혹시 이 MultiKeyLoadSizingStrategy 사용해보신 분 있으신가요?또는 다른 방법으로 batch size 전략을 이전의 기본전략인 legacy 처럼 변경하신 분이나 현재 프로젝트에서 비슷한 issue 겪으신 분 있으신가요?--(아까 오전에 비슷한 질문 올리면서, spring.jpa.properties.hibernate.jdbc.batch_size 사용하면 되는 것 같다고 했었는데 착각이었습니다. 실제로는 n + 1 발생에 영향을 주지 않습니다.)--(추가)MultiKeyLoadSizingStrategy 를 사용하는 부분은 Dialect 입니다. 이때 넘겨받는 numberOfKeys 는 지정한 BatchSize 와 동일합니다. 그리고 아래 코드에 의해 최종적으로 생성하는 ? 의 개수는 최초로 딱 1번, 1개만 생성되는 것처럼 보입니다. 그러면 코드가 dynamic 처럼 작동하는 게 이해는 가네요. 동적으로 id 의 개수에 따라 다른 PreparedStatement를 사용하는 게 아니니까요.만약 BatchSize 를 10으로 정한 필드가 있다면, 해당 필드는 아래 코드에 의해 10(pad=false, column=1) 또는 16(pad=true, column=1) 둘 중 하나의 쿼리만 생성됩니다.위에서 언급한 링크에서 김영한 님 설명대로라면 10 + nlog2 개의 쿼리가 생성되는 데 반해, MultiKeyLoadSizingStrategy 는 딱 하나의 쿼리만을 생성하고 재사용하는 것 같습니다. 그런데 그 쿼리의 ? 의 개수를 '잘' 정하는 거죠.그러면 pad와 numberOfColumns 를 어떻게 바꾸느냐도 알아봐야겠네요... 그리고 최적화에 대한 새로운 패러다임? 자체도 이해할 필요가 있어 보입니다. 아래는 Dialect 추상클래스의 일부분입니다. protected final MultiKeyLoadSizingStrategy STANDARD_MULTI_KEY_LOAD_SIZING_STRATEGY = (numberOfColumns, numberOfKeys, pad) -> { numberOfKeys = pad ? MathHelper.ceilingPowerOfTwo( numberOfKeys ) : numberOfKeys; final long parameterCount = (long) numberOfColumns * numberOfKeys; final int limit = getParameterCountLimit(); if ( limit > 0 ) { // the Dialect reported a limit - see if the parameter count exceeds the limit if ( parameterCount >= limit ) { return limit / numberOfColumns; } } return numberOfKeys; };--(추가)pad 설정은 아래와 같이 하면 됩니다. 기본값은 false 인 것 같네요.spring.jpa.properties.hibernate.query.in_clause_parameter_padding=true그리고, numberOfColumns 는 굳이 건드려야 할 필요는 없어보입니다.--결론적으로 batch_fetch_style 이 deprecated 된 이후에는 기존의 legacy 처럼 여러 개의 statement 를 만들어서 사용하지 못 하고, 각 Entity 의 batch size 를 얼마나 설정하느냐에 따라 Dialect가 그에 대응하는 딱 하나의 statement 를 만드는 것 같습니다.
-
미해결스프링 부트 - 핵심 원리와 활용
tomcat runner 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요, 다른 분들도 겪으셨던 것 같은데 해결방안은 딱히 없는 것 같아서 다시 글 올립니다.저도 tomcat runner를 edit configuration에서 추가하려고 하면 설정창이 안뜨고 먹통인 문제를 겪고 있습니다.(캡쳐는 다른분들이 올려주신 질문글과 동일.)기존에 IntelliJ Edu를 쓰고 있었는데 tomcat runner가 검색이 되지 않아 community 버젼을 새로 깔았고 이때문에 idea는 완전 깨끗한 상태입니다; (당연히 캐시를 삭제해봐도 개선이 되지 않습니다.환경은 아래와 같습니다.소스코드: 강의제공 코드자바 버전 : 17 (oracle jdk 17.0.7-macos-aarch64)OS : Mac (Apple M1 Ventura 13.2.1)인텔리제이 커뮤니티 버전: 2023.1.1캐시삭제 외에 시도할 수 있는게 있다면 알려주세요.감사합니다.
-
미해결
맥북 IntelliJ 재설치 후 Intellij 내 터미널(terminal)이 작동이 안돼요
Intellij 기반으로 공부하고 있는 맥북 유저입니다.원래는 terminal로 "idea ." 명령어로 Intellij를 실행하고 공부하고 IntelliJ 내부 터미널로 git 명령어를 통해 백업하고 있었습니다.그런데 오늘 intellij를 삭제 후 재설치하고 나니intellij를 터미널에서 "idea ." 명령어로 실행되는 것이 불가능해졌습니다.해당 환경설정하는 방법은 시도해봤습니다. (IntelliJ 실행 -> Tools -> Create Command-Line Launcher)이걸 누르고 나면 아래와 같은 에러가 뜹니다.환경변수에 설정하라는 뜻인 거 같은데 저 경로를 환경변수에 넣으라는 뜻인 거 같아서 시도해봤는데 별 효과가 없었습니다. (intellij -> 환경설정 -> terminal -> Path Variable에 추가해봤습니다.)그리고... IntelliJ 내부에 자체적으로 있는 터미널도 말썽입니다.git 명령어 자체도 못 알아듣고요. (PC 내부에 있는 Terminal에서는 git이라는 명령어가 잘 작동합니다.)그 외에 ls 명령어도 못 알아듣는 상황입니다.해결 방법 아시는 분 계신다면 공유 부탁드립니다...