@Id @GeneratedValue 질문드립니다.
305
작성한 질문수 2
책이나 강의에서 대부분 @GeneratedValue 를 사용하여
PK를 자동으로 생성하게 해주는 예제로 많이 진행이 된 것 같습니다.
그런데 제가 궁금한것은 저렇게 PK를 숫자로 자동할당 받는 방법으로 하면
인덱스를 활용할 수 없지 않나요?
편의성으로 보면 @GeneratedValue 가 좋지만
성능면에선 떨어질 것 같아서 문의드립니다.
답변 4
0
두번째 질문(where 절에 오는 컬럼 순서에 따라 인덱스를 탈 수 있느냐)은 첫번째 질문(PK가 숫자를 자동으로 할당받으면 인덱스를 사용하지 못하지 않느냐)과 조금 다른거 같습니다만.
name 컬럼에 인덱스를 설정하셨다면 인덱스가 작동해야 하는거 아닐까요. 음.. 참고로 JPA로 인덱스 맵핑은 @Table 애노테이션에서 indexes라는 프로퍼티를 사용해서 설정하실 수 있습니다.
https://stackoverflow.com/questions/3405229/specifying-an-index-non-unique-key-using-jpa
여기서 채택된 댓글말고 up 가장 많이 받은 댓글 참고하세요.
감사합니다.
0
@GeneratedValue + @Id 가 PK로 활용되기때문에 인덱스로 등록된다는 것은 알고 있습니다.
다만 인덱스 활용시 where절에 오는 컬럼의 순서에따라 인덱스를 탈수있냐, 못타냐, 타다가마냐 정도로
달라지는것으로 알고있어서 질문드렸습니다.
회원 테이블에 No(시퀀스), Name, Phone, Address 등의 컬럼이 있고
인덱스가 No와 Name 으로 등록되어있을때
WHERE Name = 'asd%' 로 검색해도 인덱스가 작동하는건가요?
이 질문까지만 하고 인덱스에 대해 좀더 공부하고 오겠습니다. 감사합니다.
0
마침 GeneratedValue 관련해서 좋은 글이 올라왔네요.
참고하세요~
0
우선 좋은 질문 감사합니다.
@GeneratedValue는 사용하는 DB에 따라 키 생성 방식이 달라질 수 있습니다. 그리고 @Id와 함께 쓰이기 떄문에 PK 값이라서 유일한 값이고 null을 허용하지 않는 컬럼이 됩니다. 유일한 값만 들어있는 컬럼인데 왜 인덱스를 활용할 수 없다고 하시는지 잘 모르겠습니다.
@GeneratedValue가 숫자를 가져와서 할당하게 해주는게 아니라, 그 애노테이션으로 설정된 컬럼의 정의에 따라 그런 일이 발생하는 것입니다. 여기서 JPA가 해주는 일은 맵핑만 하는 것이지 값을 가져와서 설정하는 일을 해주는 것이 아닙니다.
감사합니다.
spring boot 2.7.13-SNAPSHOT trace 소문자 로그 안나옴
0
533
1
<스프링 데이터 Common: 기본 리포지토리 커스터마이징> 에 대한 질문
0
392
1
comment table에서 저장될떄 왜 id값이 2부터저장이되는건가요?
0
407
1
@EnableJpaRepositories 설정을 스프링부트가 어디에서 자동설정하나요?
0
451
0
PersistenceContext 관련 질문드립니다.
0
335
1
지금(Eager), 나중에(Lazy)의 의미를 모르겠습니다
0
338
1
transaction 구간이 길어질 경우의 처리방법 문의드립니다.
0
905
1
docker postgres
0
293
1
Multiple DataSource 사용 시 transaction 관련 질문 드립니다.
0
2908
1
entity 중 null이 아닌 필드만 update 할 방법이 있을까요?
0
1191
1
Eager 모드일 경우, join을 inner join으로 바꾸는 법이 있을까요?
0
385
1
엔티티를 상속받는 DTO가 일반적인가요?
1
1847
1
커스텀 타입 클래스를 String 타입 처럼 이용해 쿼리하는 방법에 대해 질문하고 싶습니다.
0
339
1
연관관계 매핑 어떤식으로 해야될지 감이 안잡힙니다.
0
566
4
EntityManager 주입시 Annotation관련 질문드립니다.
0
565
1
클래스 기반 프로젝션 사용 관련 질문
0
560
1
save 메서드 질문드립니다.
0
258
1
복잡한 통계쿼리도 JPA로 가능한가요?
2
5593
1
find 와 get의 차이가 무엇인가요?
0
890
1
실무에서 JPA 할 때 FK로 개발할때 연관관계를 꼭 맺어주어야 하나요?
0
999
1
\dt Did not find any relations.
0
481
1
소스코드는 어디서 볼 수 있을까요?
1
287
1
table 생성과 select 문에 대한 질문
0
174
1
스프링 데이터 RepositoryTest 관련 질문
0
2173
2





