묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
fetch join 4개만 나오는건 알겠는데 json에서는 다른이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]join을 하면4개가 나오는데id가 같지만 orderItems는 서로 다르게 나옵니다. 근데 왜 json에서는 orderItems 중복되서 왜 똑같이 나오는건가요? 그리고 값이 왜 orderItems는 여러개씩 출력이 되는거죠? 사실상 sql시 하나씩 setter로 들어가서 출력되지않나요? 예) "orderItems": [ { "itemName": "JPA1 BOOK", "orderPrice": 10000, "count": 1 }, { "itemName": "JPA2 BOOK", "orderPrice": 20000, "count": 2 } ] 위와 같이 orderItems가 두개가 나옵니다.근데 sql은 하나씩 출력이 되는데 그러면 "orderItems": [ { "itemName": "JPA1 BOOK", "orderPrice": 10000, "count": 1 } ]위와 같이 하나만 출력이 되어야하는거 아닌가요?setter로 매핑 되면 그렇지않나요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
실전예제1을 따라하는 중인데 오류가 납니다.
[질문 내용]실전예제1을 따라하고 있는데 16분 30초쯤에서 실행 하는 부분까지 따라했는데 저는 create가 안되고 이렇게 에러가 납니다. 해결 방법 알 수 있을까요? Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Unable to load class [org.h2.Driver]
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
assertThat import, RunWith annotation 관련 문의
=======================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]혹시 여기서 import 활성화를 위해서 어떤 조치를 취해야 하는지 궁금합니다. (setting 설정은 Gradle에서 실행하도록 설정해놨음)
-
미해결
@DataJpaTest에서 참조하는 Entity 관련 질문 있습니다
개발자 선배님들 안녕하세요. @DataJpaTest 관련해서 궁금한점이 생겨서 질문드립니다. 제가 작성한 User Entity에서 Address Entity를 FK로 참조하고 있습니다. 여기서 UserRepository의 테스트 코드를 작성할 때 AddressRepository도 @Autowired로 등록 후 Address를 먼저 save()로 insert 후에 User Insert 테스트를 작성해야 하나요??? 이러면 UserRepository의 테스트가 아니라 UserRepository, AddressRepository 두개의 테스트를 작성하는 것이라 좀 이상하다고 생각이 드네요.. 제가 작성한 코드입니다. package com.kh.bookfinder.repository; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.assertThatThrownBy; import com.kh.bookfinder.entity.Address; import com.kh.bookfinder.entity.User; import com.kh.bookfinder.entity.UserStatus; import jakarta.persistence.EntityManager; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase; import org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureTestDatabase.Replace; import org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTest; import org.springframework.dao.DataIntegrityViolationException; import org.springframework.test.context.ActiveProfiles; import org.springframework.test.context.TestPropertySource; @ActiveProfiles("test") @DataJpaTest @TestPropertySource(locations = "classpath:application-test.properties") @AutoConfigureTestDatabase(replace = Replace.NONE) public class UserRepositoryTest { @Autowired UserRepository userRepository; @Autowired AddressRepository addressRepository; Address givenAddress; @BeforeEach public void setup() { givenAddress = Address.builder() .si("서울특별시") .gu("강남구") .dong("역삼동") .roadFullAddress("역삼역") .build(); addressRepository.save(givenAddress); } @Test public void userInsertTest1() { // Given: User가 주어진다. User givenUser = User.builder() .email("user@mail.kr") .password("password") .phone("010-1234-5678") .nickname("nickname") .status(UserStatus.ADMIN) .address(givenAddress) .build(); // When: save() 메서드를 호출하여 User를 저장한다. User actual = this.userRepository.save(givenUser); // Then: actual은 givenUser와 같다. assertThat(actual).isNotNull(); assertThat(actual).isEqualTo(givenUser); } @Test @DisplayName("email은 unique로 중복이 불가능하다") public void userInsertTest2() { // Given: email이 같은 User가 2개 주어진다. User givenUser1 = User.builder() .email("user@mail.kr") .password("password") .phone("010-1234-5678") .nickname("nickname") .status(UserStatus.ADMIN) .address(givenAddress) .build(); User givenUser2 = User.builder() .email("user@mail.kr") .password("password2") .phone("010-5678-1234") .nickname("nickname2") .status(UserStatus.ADMIN) .address(givenAddress) .build(); // When: save() 메서드를 호출하여 givenUser1를 저장한다. User actual = this.userRepository.save(givenUser1); // And: save() 메서드를 호출하여 givenUser2를 저장한다. // Then: Exception이 발생한다. assertThatThrownBy(() -> this.userRepository.save(givenUser2)) .isInstanceOf(DataIntegrityViolationException.class) .hasMessageContaining("Duplicate"); } @Test @DisplayName("nickname은 unique로 중복이 불가능하다") public void userInsertTest3() { // Given: email이 같은 User가 2개 주어진다. User givenUser1 = User.builder() .email("user@mail.kr") .password("password") .phone("010-1234-5678") .nickname("nickname") .status(UserStatus.ADMIN) .address(givenAddress) .build(); User givenUser2 = User.builder() .email("user2@mail.kr") .password("password2") .phone("010-5678-1234") .nickname("nickname") .status(UserStatus.ADMIN) .address(givenAddress) .build(); // When: save() 메서드를 호출하여 givenUser1를 저장한다. User actual = this.userRepository.save(givenUser1); // And: save() 메서드를 호출하여 givenUser2를 저장한다. // Then: Exception이 발생한다. assertThatThrownBy(() -> this.userRepository.save(givenUser2)) .isInstanceOf(DataIntegrityViolationException.class) .hasMessageContaining("Duplicate"); } } 읽어주셔서 감사합니다..!
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
왜 2개 인가요...? 22:12
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]TeamA, TeamB, TeamC를 persist했는데...jpql이 select t from Team t를 하게 되면 teamA , B, C나와서 3개 아닌가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
레이지 익셉션 문의 드려요
SellBuyList 테이블에서 단방향 연관관계매핑 했습니다.join fetch 를 쓴다면 정상적으로 잘 작동됩니다.fetch를 뺸다면 레이지 익셉션 나오는이유가 궁금합니다.db에는 정상적으로 데이터가 있어요.MusicList 에 id필드만 fetch없이 레이지가 안터지고 잘돼고요MusicList 에 나머지 필드 title, content, price 등등 다 레이지 터지네요,,
-
해결됨코드로 배우는 React 19 with 스프링부트 API서버
이동한 페이지 번호가 회색 색상으로 변하지 않습니다 ㅠ
데이터는 정상적으로 가져와지고 있습니다. 하지만 선택된 페이지 번호가 회색으로 변경이 안되고 있는데, 어느 부분이 문제인지 모르겠습니다...PageComponent.js 에서 선택된 페이지 번호에 회색을 부여하는 것으로 알고 있는데, 왜 안되는 걸까요..? 아래는 PageComponent.js 코드입니다. 강의 내용과 피피티와 코드가 동일합니다.import React from 'react'; function PageComponent({serverData, movePage}) { // serverData.prev, pageNumList, next return ( <div className="m-6 flex justify-center"> {serverData.prev ? <div className="m-2 p-2 w-16 text-center font-bold text-blue-400 " onClick={() => movePage({page: serverData.prevPage})}> Prev </div> : <></>} {serverData.pageNumList.map(pageNum => <div key={pageNum} className={`m-2 p-2 w-12 text-center rounded shadow-md text-white ${serverData.current === pageNum ? 'bg-gray-500' : 'bg-blue-400'}`} onClick={() => movePage({page: pageNum})}> {pageNum} </div> )} {serverData.next ? <div className="m-2 p-2 w-16 text-center font-bold text-blue-400" onClick={() => movePage({page: serverData.nextPage})}> Next </div> : <></>} </div> ); } export default PageComponent; 그리고 콘솔창에서 다음과 같은 경고창이 뜨는데 가장 좋은 해결 방법에 대해 알 수 있을까요?이 문제는 해결됐습니다! 제가 ListComponent.js 파일 안에서 div 태그 안의 key 속성에 todo.tno 를 큰따옴표로 묶은 오타였습니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
스프링 db연결 실패,,,ㅠ
도와주세요,,,
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
람다로 변할때 alt _+ enter 안됨,,
람다식으로 변할때 new RowMapper에서 알트 + 엔터 쳐도 아무것도 안나오는데 뭐가 설정이 잘못된건가요?
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
연관관계 편의 메서드는 주인 vs 주인아닌곳 중 어디서 사용하는게 낫나요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의에서 order 객체(주인X)쪽에서 addOrderItem 메서드로 orderItems.add(orderItem), orderItem.setOrder(order) 를 하시는걸 보았습니다. 어느쪽(주인 or 주인X)에서 편의 메서드를 사용할지는 상황에 따라 다른가요? 예전 강의의 team(주인X), member(주인) 관계에서, member.setTeam 메서드 내에서 this.team = team, team.getMembers().add(this) 를 했던게 기억나는데, 이 경우는 주인쪽에서 반대쪽에 값을 넣어주었잖아요 [질문 정리]양방향 연관관계에서 주인과 주인이 아닌쪽 모두에게 값을 입력할때 사용하는 연관관계 편의 메서드의 위치는 어디든 상관없나요?편의 메서드를 양쪽 모두에 정의해도 되나요? 좀 복잡할 것 같긴한데..
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
엔티티가 중첩되는 경우 질문있습니다!
안녕하세요 강의 보면서 게시판 성격의 서비스를 만들던 중에 궁금증이 생겼습니다. 두 가지 방법이 있는데, 제가 취준생이라 실제 서비스 코드들을 본 적이 없어서 어떤 방법이 조금 더 현명한 방법인지 궁금합니다!Jpa 사용법처럼 게시글과 댓글을 맵핑하는 방법입니다.댓글에 게시글의 키만 가지는 방법입니다. 1번 코드는 대략적으로 이런 형태일 것 같습니다. @Entity public class Article{ @Id @GeneratedValue(strategy = Identity) long id; String content; } @Entity public class Comment{ @Id @GeneratedValue(strategy = Identity) long id; String comment; @ManyToOne(fetch = FetchType.LAZY) Article article; } 1번 코드의 경우에는 배울 때는 맵핑도 깔끔하게 잘 되고 좋았는데, 실제 개발을 하다 보니 댓글만 사용하는 경우에 있어서 Article의 내용은 전혀 필요가 없는 경우도 많을 것 같습니다.또한 게시글의 댓글들을 조회 할 때, 같은 Article 내용들이 반복해서 들어 있다는 점이 마음에 걸립니다.(Lazy 하게 가져와서 문제가 없을것 같기도 하고 이 부분은 확실하지 않습니다.) 2번 코드는 게시글의 키만 가지는 경우입니다. @Entity public class Article{ @Id @GeneratedValue(strategy = Identity) long id; String content; } @Entity public class Comment{ @Id @GeneratedValue(strategy = Identity) long id; String comment; long articleId; } 2번의 경우에는 불필요한 정보를 담지 않고 필요한 경우에는 Id값으로 찾아서 가져올 수 있습니다.하지만 article 과 Comment를 각각 따로 관리하는 형태가 됩니다.(사실 1번 코드도 따로 관리는 가능할 것 같습니다)간단한 경우에는 1번이 좋은 것 같은데 컴포지션 되는 객체들이 많은 경우에는 그 자체로 정말 생각해야 되는 경우가 많아 지는 것 같습니다.(Comment 안에 Article, User, 첨부 파일 Entity 등등이 복잡하게 들어갈 수 있을 것 같습니다 )네이버 카페와 같은 사이트들의 경우에서는 게시글과 댓글을 따로 관리하는 것 같기도 하고(작성 글 보기를 누르면 삭제된 게시글 이지만 댓글 내용은 볼 수 있는 경우입니다)실제로는 어떤 방식으로 풀어 가는지 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
CreateMemberRequest를 static 클래스로 만든이유가 뭘가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]static말고 그 인스턴스 클래스로 만들면 안되는건가요?static용도는 main을 띄우기전에 먼저 static을 메모리에 올리는 용으로 알고있습니다.근데 일반 인스턴스 클래스를 파라미터로 받아서 사용 할 수는 없는건가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
일반조인시 지연로딩에 대해서
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]1. 지연로딩으로 설정 안 하고 조인을 할때 패치 조인과 같은용도 인가요? 일반조인시 반환할때 연관관계를 고려하지 않는다고 했는데 where 외래키테이블.컬럼명=4 해서 해당부분을 설정하고 조인된 외래키의 값을 출력하면 그러면 반환이 안되나요? 왜냐하면 연관관계를 고려하지 않는다고했으니예를들면select t from Team t join t.members mwhere m.name="박"하고 createQuery를 통해 result를 반환하면result.members.name하면 반환이 안되나요? 그러면 페치조인시에는 result.members.name는 반환이 되는거죠?
-
해결됨코드로 배우는 React 19 with 스프링부트 API서버
PageResponseDTO 생성자의 매개변수 변수명에 관련된 질문
안녕하세요.현재 섹션 4 서비스계층 - 상품 목록 처리 강의 7분 44초 진행중 문제가 생겨 질문 드려요.제 코드에서는 totalCount 를 사용하지 못하는데, 선생님 강의에서는 totalCount 로 사용 하셨더라구요. 기존의 섹션2 - 페이지처리를 위한 DTO설계 14분 56초 부분에서는 매개변수 명을 total 로 작성 해주셨는데 매개변수 명을 totalCount 로 작성하면 해결 되는건가요??
-
미해결실전! Querydsl
여러 프로젝트에서 하나의 데이터베이스에 접근하는방법
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요 강의 열심히 보고 있습니다. 감사합니다.다름이 아니라현재 여러프로젝트에서 하나의 데이터베이스에 접근하여crud 를 하고자 합니다. 1. 알아본결과 모든 프로젝트에서 똑같이 엔티티를 관리하면 된다고 하는거같은데.. 이게 맞을지요..2. 그리고 만약 맞다면 그럼 한곳에서 엔티티를 수정하게 되면 다른곳에서도 똑같이 다 수정해야하는게 아닌가 위 방법은 생각 해봐도 아닌거같아서.. 아마 따로 엔티티를 공용으로 관리하여 사용하는 방법이 있을거같은데 그런방법이 없을지요.. 주로 어떤방법을 사용하는지 알려주실수 있나요...
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
jdk 관련 질문입니다
안녕하세요! 자바 스프링 수업 재밌게 듣고 있습니다.다름이 아니라 사용하는 SDK가 Oracle OpenJDK version 17.0.10 버전 다운하여 사용중입니다. 이게 기업용은 유료로 바꼈다고 조심해서 사용하라고 하길래 검색해봐도 시원하게 결과가 나오지 않아서 질문드립니다.Oracle JDK와 Oracle OpenJDK가 다른게 맞는건지, 무료 사용은 맞는지, 기업용 무료사용은 어떤걸 선택해야하는지 궁금해서 질문드립니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
em.clear() 질문
안녕하세요. 혼자 실습 중에 이해가 안가는 것이 있어 질문드립니다.Member member = new Member(1L, "jiho"); em.persist(member); Member jiho = em.find(Member.class, 1L); em.clear(); Member jiho2 = em.find(Member.class, 1L); System.out.println(jiho == jiho2); tx.commit();를 실행했을 때의 결과가로 나옵니다.false 출력 후에 commit() 호출로 쓰기 지연 저장소에 있던 insert sql문이 실행되야할 것 같은데,실행되었다는 문구도 없고 DB에도 저장되어있지않습니다. em.clear();가 1차캐시 뿐만 아니라 쓰기 지연 저장소에 있는 쿼리문들도 모두 지워버리는건가요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
String query = "SELECT t.members.size FROM Team t"; 오류
아래 내용 검색해보니 SIZE(t.member)로 사용하라고 안내하는데 왜 저는 안되는걸까요...? java.lang.IllegalArgumentException: org.hibernate.query.SemanticException: illegal attempt to dereference collection [com.example.jpql.jpql.Team(t).members] with element property reference [size]Caused by: org.hibernate.query.SemanticException: illegal attempt to dereference collection [com.example.jpql.jpql.Team(t).members] with element property reference [size]
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
엔티티 수정 과정과 쓰기 지연 저장소
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요! 플러시 강의 54초 부분에서 플러시 발생 시 수정된 엔티티가 쓰기 지연 SQL에 등록된다고 하셨는데, 그럼member.setUsername(",,,"); 와 같은 변경 메소드 호출변경은 영속성 컨텍스트에 바로 반영됨쓰기 지연 SQL 저장소에 UPDATE SQL 등록commit()후 flush()가 호출되며 스냅샷과 영속성 컨텍스트에 등록되어있는 엔티티 사이의 불일치 감지변경된 엔티티를 쓰기 지연 SQL 저장소에 등록flush로 쓰기 지연 SQL 저장소의 쿼리를 DB에 전송와 같이 동작하는 것이 맞나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테이블 관련 질문
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]아직 @Column등의 어노테이션이 좀 헷갈려서 테이블과 코드를 같이보며 익숙해지려하고있는 상태에서 테이블을 보니, 예를들면 orders테이블에 ORDER_DATE가 추가가 되있고 코드에서는 private LocalDateTime orderDate; 와 같이 다른 어노테이션이 붙지 않앗음에도 데이터베이스에 추가가 되는거같아보입니다. 그럼 제가 이해하기론 따로 컬럼명을 바꿔서 넣고싶을떄 어노테이션에 name=""필드를 추가하고 아닐땐 그냥 필드 선언만 하면 되는건가요? 제가 이해를 제대로 한건지 모르겟어요 ㅠㅠ