학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 뭐가 문제일까요 똑같이 타이핑 한 것 같은데 변수 초기화 오류 뜨네요
"Cannot invoke 'jdk.internal.platform.CgroupInfo.getMountPoint()' because 'anyController' is null" 다음과 같은 에러가 발생합니다. Mac Docker Desktop 환경 OpenJDK 17 slim 이미지 사용 로컬에서 진행했을 때 gpt에게 물어봤을 때와 stackoverflow를 확인해봤습니다. 이 에러는 Java 17 이상에서, JVM이 리눅스 컨테이너(CGroup) 안에서 리소스(CPU, 메모리 등) 정보를 가져오려고 할 때, Mac OS 에서는 리눅스 CGroup 시스템 이 아예 존재하지 않아서 발생 그리고 문제를 해결하기 위한 방법으로 프로메테우스를 비활성화하라는 답변을 주었는데, 해결방안을 적용해봐도 해결할 수 없었습니다. 그래서 생각한게 리눅스 컨테이너 이미지인 slim 버전에 대해서 생각하게 되었고, Dockerfile의 이미를 교체했을 때 FROM eclipse-temurin:17-jdk 정상적으로 실습을 수행할 수 있었습니다. 답변보다는 mac에서 진행할 경우 다음과 같은 문제로 머리아플 분들을 위해 작성했습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의 할 때 보여주시는 화면은 문서로는 없나요?
강의의 3분 정도 쯤에, (beforeLogin)/i 폴더와 파일들을 (beforeLogin)/@modal/(i) 로 복사 한 후 http://localhost:3000/i/flow/login 접속시 무한 GET 접속 시도가 터미널 창에 보입니다. 이때, <Link href ="login" className ={styles.login}>로그인</Link> 입니다. 그런데, <Link href ="/i/flow/login" className ={styles.login}>로그인</Link> 변경하면, http://localhost:3000/i/flow/login 접속시, 터미널 창에서는 무한 GET 접속시도는 사라집니다. 어떻게 해서 이렇게 되는지요?
강의 50초 정도에, i, login, page.tsx는 {children}에서 렌더링, 여기는 (@modal 의 하위 폴더와 파일 선택) {modal}에서 되죠? 라고 설명하시는 부분이 이해가 안됩니다. 저는, app/(beforeLogin)/layout.tsx 의 {children}은 app/(beforeLogin)/page.tsx 를 가져오는 것이고, {modal}은 @modal 폴더의 page.tsx (default.tsx, i/flow/login/폴더로 리다이렉션) 를 찾는 것으로 이했습니다. 여러 폴더를 모두 보여준다고 설명하신듯하여, 이해가 안되네요.
둘의 차이를 테스트 해본 결과 아래와 같은 결과가 나왔습니다. CascadeType.REMOVE 의 경우는 findParent.getChildList().remove(0) 를 해도 자식이 삭제가 안 되고 orphanRemoval = true 는 삭제가 된다. (대신, CascadeType.PERSIST 가 있어야지만 됨) 여기서 의문인 점이 있습니다. orphanRemoval = true 의 경우 왜 CascadeType.PERSIST 가 있을 때만 그렇게 작동하나요?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 현재 자동차에 엔진만 사용되기 때문에 내부 클래스로 넣었는데, 만약 차량 실내 작업(계기판 켜지기, 엠비언트 라이트 점등) 클래스가 하나가 더 있다면 inner 클래스를 두개 만드는게 맞는걸까요? .. 아니면 엔진, 실내 작업 두개를 따로 독립적으로 만드는게 나은걸까요? 문의 드립니다~
안녕하세요 코드를 쳐보다가 궁금증이 생겼습니다. 지난번 채팅프로그램은 클라이언트가 서버에 연결되면 연결된 클라이언트와 서버 소켓이 /exit할때까지 끊기지 않았는데요 이번 예시에서는 사용자가 /, /site1, /site2, /search?q=hello 이렇게 각각의 다른 url로 이동할때마다 서버와 클라이언트의 연결이 새로되고 소켓도 새로 생성되는건가요?
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
repository를 user를 다룰때는 repository라는 패키지를 따로 만들어서 했는데, 지금 강의의 book에 관한 repositorty를 따로 만들지 않고 인터페이스만 객체와 같은 패키지에 만들어서 extends로 jpa를 받기 때문에 따로 만들 필요가 없어서 이렇게 만든거라고 이해 했는데 맞게 이해한걸까요? 즉, jpa를 익스텐즈한 인테페이스 덕분에 따로 sql문법을 작성하지 않았다는 말이 맞을까요?> 추가로 왜 객체가 있는 패키지에 인터페이스를 만드는 이유가 띠로 있나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 현재 이렇게 까지만 생성이 되었습니다. 에러로그와 소스코드는 제일 하단에 있습니다! ngframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:390) ~[spring-orm-6.2.6.jar:6.2.6] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:419) ~[spring-orm-6.2.6.jar:6.2.6] at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:400) ~[spring-orm-6.2.6.jar:6.2.6] at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:366) ~[spring-orm-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1865) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1814) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:607) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support .AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:529) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support .AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:339) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support .DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:371) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support .AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:337) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.beans.factory.support .AbstractBeanFactory.getBean(AbstractBeanFactory.java:207) ~[spring-beans-6.2.6.jar:6.2.6] at org.springframework.context.support .AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:970) ~[spring-context-6.2.6.jar:6.2.6] at org.springframework.context.support .AbstractApplicationContext.refresh(AbstractApplicationContext.java:627) ~[spring-context-6.2.6.jar:6.2.6] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.4.5.jar:3.4.5] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:753) ~[spring-boot-3.4.5.jar:3.4.5] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:439) ~[spring-boot-3.4.5.jar:3.4.5] at org.springframework.boot.SpringApplication.run (SpringApplication.java:318) ~[spring-boot-3.4.5.jar:3.4.5] at org.springframework.boot.SpringApplication.run (SpringApplication.java:1362) ~[spring-boot-3.4.5.jar:3.4.5] at org.springframework.boot.SpringApplication.run (SpringApplication.java:1351) ~[spring-boot-3.4.5.jar:3.4.5] at jpabook.jpashop.JpashopApplication.main(JpashopApplication.java:10) ~[main/:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na] at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[na:na] at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:568) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run (RestartLauncher.java:50) ~[spring-boot-devtools-3.4.5.jar:3.4.5] Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "create table delivery (delivery_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), status enum ([*]), primary key (delivery_id))"; expected "INTERSECTS (, NOT, EXISTS, UNIQUE, INTERSECTS"; SQL statement: create table delivery (delivery_id bigint not null, city varchar(255), street varchar(255), zipcode varchar(255), status enum (), primary key (delivery_id)) [42001-232] at org.h2.message.DbException.getJdbcSQLException(DbException.java:514) ~[h2-2.3.232.jar:2.3.232] at org.h2.engine.SessionRemote.readSQLException(SessionRemote.java:663) ~[h2-2.3.232.jar:2.3.232] at org.h2.engine.SessionRemote.readException(SessionRemote.java:646) ~[h2-2.3.232.jar:2.3.232] at org.h2.engine.SessionRemote.done(SessionRemote.java:620) ~[h2-2.3.232.jar:2.3.232] at org.h2.command.CommandRemote.prepare(CommandRemote.java:84) ~[h2-2.3.232.jar:2.3.232] at org.h2.command.CommandRemote.<init>(CommandRemote.java:56) ~[h2-2.3.232.jar:2.3.232] at org.h2.engine.SessionRemote.prepareCommand(SessionRemote.java:488) ~[h2-2.3.232.jar:2.3.232] at org.h2.jdbc.JdbcConnection.prepareCommand(JdbcConnection.java:1164) ~[h2-2.3.232.jar:2.3.232] at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:245) ~[h2-2.3.232.jar:2.3.232] at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:231) ~[h2-2.3.232.jar:2.3.232] at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:94) ~[HikariCP-5.1.0.jar:na] at com.zaxxer.hikari.pool.HikariProxyStatement.execute( HikariProxyStatement.java ) ~[HikariCP-5.1.0.jar:na] at com.p6spy.engine.wrapper.StatementWrapper.execute(StatementWrapper.java:115) ~[p6spy-3.9.0.jar:na] at org.hibernate.tool.schema.internal.exec.GenerationTargetToDatabase.accept(GenerationTargetToDatabase.java:80) ~[ hibernate-core-6.6.13.Final .jar: 6.6.13.Final ] ... 44 common frames omitted 이런식으로 에러가 발생하는데 mappedby, @Table 등 설정이 다 되어 있는데 이러한 오류가 발생합니다. 따로 설정한 건 없는데도 이런 오류가 발생을 하네요.. 확인부탁드립니다..! https://drive.google.com/file/d/1XoIDg25sc6iJ0yxQK5RGylSvs38GpiA7/view?usp=sharing
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 [질문 내용] 내부클래스 활용편에서 car, engine등이 서로의 역할을 강의에서 설정하여 설명하는데... 클래스(설계)를 만드는 처음 구성 방법에 대한 설명은 없는지요? 피그마(?)를 사용해야 하나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하십니까 수업진행중 OrderItem 테이블에서 Orders 테이블이 생성되지 않아 id를 참조하지 못하는 에러가 발생하여 검색하여 이것저것 만졌는데, 이제 CREATE 문이 아예 되지 않는 문제가 생겨 질문드립니다. 에러로그는 남지 않고 CREATE문만 돌지 않습니다. jpashop-project 라는 명칭을 저는 사용하고 있습니다. 제 소스 파일 다운로드 링크 또한 함께 올려두겠습니다. https://drive.google.com/file/d/1XoIDg25sc6iJ0yxQK5RGylSvs38GpiA7/view?usp=sharing 링크 아래에는 콘솔로그를 남겨두겠습니다. :: Spring Boot :: (v3.4.5) 2025-04-27T18:15:15.780+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315780 | took 0ms | statement | connection 6| url jdbc:h2:tcp://localhost/~/jpashop-project create global temporary table HTE_category(rn_ integer not null, category_id bigint, parent_id bigint, name varchar(255), primary key (rn_)) TRANSACTIONAL create global temporary table HTE_category(rn_ integer not null, category_id bigint, parent_id bigint, name varchar(255), primary key (rn_)) TRANSACTIONAL; 2025-04-27T18:15:15.780+09:00 DEBUG 23859 --- [ restartedMain] org.hibernate.SQL : create global temporary table HTE_item2(price integer, rn_ integer not null, stock_quantity integer, item_id bigint, dtype varchar(31) not null, actor varchar(255), director varchar(255), name varchar(255), primary key (rn_)) TRANSACTIONAL 2025-04-27T18:15:15.780+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315780 | took 0ms | statement | connection 7| url jdbc:h2:tcp://localhost/~/jpashop-project create global temporary table HTE_item2(price integer, rn_ integer not null, stock_quantity integer, item_id bigint, dtype varchar(31) not null, actor varchar(255), director varchar(255), name varchar(255), primary key (rn_)) TRANSACTIONAL create global temporary table HTE_item2(price integer, rn_ integer not null, stock_quantity integer, item_id bigint, dtype varchar(31) not null, actor varchar(255), director varchar(255), name varchar(255), primary key (rn_)) TRANSACTIONAL; 2025-04-27T18:15:15.781+09:00 DEBUG 23859 --- [ restartedMain] org.hibernate.SQL : create global temporary table HTE_orders(rn_ integer not null, delivery_id bigint, member_id bigint, order_date timestamp(6), order_id bigint, status enum (), primary key (rn_)) TRANSACTIONAL 2025-04-27T18:15:15.782+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315782 | took 1ms | statement | connection 8| url jdbc:h2:tcp://localhost/~/jpashop-project create global temporary table HTE_orders(rn_ integer not null, delivery_id bigint, member_id bigint, order_date timestamp(6), order_id bigint, status enum (), primary key (rn_)) TRANSACTIONAL create global temporary table HTE_orders(rn_ integer not null, delivery_id bigint, member_id bigint, order_date timestamp(6), order_id bigint, status enum (), primary key (rn_)) TRANSACTIONAL; 2025-04-27T18:15:15.782+09:00 DEBUG 23859 --- [ restartedMain] org.hibernate.SQL : create global temporary table HTE_item0(price integer, rn_ integer not null, stock_quantity integer, item_id bigint, dtype varchar(31) not null, artist varchar(255), etc varchar(255), name varchar(255), primary key (rn_)) TRANSACTIONAL 2025-04-27T18:15:15.782+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315782 | took 0ms | statement | connection 9| url jdbc:h2:tcp://localhost/~/jpashop-project create global temporary table HTE_item0(price integer, rn_ integer not null, stock_quantity integer, item_id bigint, dtype varchar(31) not null, artist varchar(255), etc varchar(255), name varchar(255), primary key (rn_)) TRANSACTIONAL create global temporary table HTE_item0(price integer, rn_ integer not null, stock_quantity integer, item_id bigint, dtype varchar(31) not null, artist varchar(255), etc varchar(255), name varchar(255), primary key (rn_)) TRANSACTIONAL; 2025-04-27T18:15:15.783+09:00 DEBUG 23859 --- [ restartedMain] org.hibernate.SQL : create global temporary table HTE_delivery(rn_ integer not null, delivery_id bigint, city varchar(255), street varchar(255), zipcode varchar(255), status enum (), primary key (rn_)) TRANSACTIONAL 2025-04-27T18:15:15.784+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315784 | took 0ms | statement | connection 10| url jdbc:h2:tcp://localhost/~/jpashop-project create global temporary table HTE_delivery(rn_ integer not null, delivery_id bigint, city varchar(255), street varchar(255), zipcode varchar(255), status enum (), primary key (rn_)) TRANSACTIONAL create global temporary table HTE_delivery(rn_ integer not null, delivery_id bigint, city varchar(255), street varchar(255), zipcode varchar(255), status enum (), primary key (rn_)) TRANSACTIONAL; 2025-04-27T18:15:15.784+09:00 DEBUG 23859 --- [ restartedMain] org.hibernate.SQL : create global temporary table HTE_member(rn_ integer not null, member_id bigint, city varchar(255), name varchar(255), street varchar(255), zipcode varchar(255), primary key (rn_)) TRANSACTIONAL 2025-04-27T18:15:15.784+09:00 INFO 23859 --- [ restartedMain] p6spy : #1745745315784 | took 0ms | statement | connection 11| url jdbc:h2:tcp://localhost/~/jpashop-project create global temporary table HTE_member(rn_ integer not null, member_id bigint, city varchar(255), name varchar(255), street varchar(255), zipcode varchar(255), primary key (rn_)) TRANSACTIONAL create global temporary table HTE_member(rn_ integer not null, member_id bigint, city varchar(255), name varchar(255), street varchar(255), zipcode varchar(255), primary key (rn_)) TRANSACTIONAL; 2025-04-27T18:15:15.835+09:00 INFO 23859 --- [ restartedMain] o.h.e.t.j.p.i.JtaPlatformInitiator : HHH000489: No JTA platform available (set 'hibernate.transaction.jta.platform' to enable JTA platform integration) 2025-04-27T18:15:15.835+09:00 DEBUG 23859 --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Scoping TypeConfiguration [org.hibernate.type.spi.TypeConfiguration@5574eb53] to SessionFactoryImplementor [org.hibernate.internal.SessionFactoryImpl@670ec66c] 2025-04-27T18:15:15.836+09:00 TRACE 23859 --- [ restartedMain] o.h.type.spi.TypeConfiguration$Scope : Handling #sessionFactoryCreated from [org.hibernate.internal.SessionFactoryImpl@670ec66c] for TypeConfiguration 2025-04-27T18:15:15.836+09:00 INFO 23859 --- [ restartedMain] j.LocalContainerEntityManagerFactoryBean : Initialized JPA EntityManagerFactory for persistence unit 'default' 2025-04-27T18:15:15.850+09:00 WARN 23859 --- [ restartedMain] JpaBaseConfiguration$JpaWebConfiguration : spring.jpa.open -in-view is enabled by default. Therefore, database queries may be performed during view rendering. Explicitly configure spring.jpa.open -in-view to disable this warning 2025-04-27T18:15:15.962+09:00 INFO 23859 --- [ restartedMain] o.s.b.a.h2.H2ConsoleAutoConfiguration : H2 console available at '/h2-console'. Database available at 'jdbc:h2:tcp://localhost/~/jpashop-project' 2025-04-27T18:15:15.977+09:00 INFO 23859 --- [ restartedMain] o.s.b.d.a.OptionalLiveReloadServer : LiveReload server is running on port 35729 2025-04-27T18:15:15.991+09:00 INFO 23859 --- [ restartedMain] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8080 (http) with context path '/' 2025-04-27T18:15:15.995+09:00 INFO 23859 --- [ restartedMain] jpabook.jpashop.JpashopApplication : Started JpashopApplication in 1.303 seconds (process running for 1.484)
안녕하세요. 37_사용자 질의에 맞는 SQL 생성 강의에서는 DDL 스키마 단 한개로만 예제가 구성되어 있는데요. 실제로 한개의 테이블만 사용하는 경우는 거의 없고, 많으면 10개의 테이블까지 join 하는 케이스가 많을텐데, 이 경우에는 어떻게 chatClient 를 사용하면 될까요?
강사님께서 수업을 시작하면서 해당 장은 연관관계를 세팅하는 것과는 관련이 없다고 말씀을 해주셨습니다. 연관관게 매핑 시간에 배운 내용에 의하면 Parent 엔티티에 있는 childList 는 읽기 전용이 됩니다. 하지만 cascade 속성에 의해 읽기 전용이 무력화? 되는 듯한 느낌입니다. 그래서 정리를 해보자면 "연관관계 주인 반대쪽( mappedBy 를 쓰는 쪽)의 읽기 전용은 cascade 속성에 의해 소용이 없어질 수 있다." 라고 생각하면 될까요?