728x90
Git
- git branch
- git add *
- git commit -m "메세지"
- git push origin 브랜치
Spring Boot
- 정적 파일 Resource 경로 설정 -> addResourceHandlers
- AOP
JPA
- 컬럼이 많을 때는 DynamicUpdate 어노테이션을 사용해 보자
- 영속성
- 1차 캐싱
- 삭제는 remove()
- persist()
- JPQL 실행시 flush 자동 호출
- flush 모드 설정 : FlushModeType.AUTO / FlushModeType.COMMIT - EntityManager setFlushMode() 사용
- 준영속성 : 영속성 -> 준영속성 : detach(Entity) 특정엔티티만, close() 종료, clear() 초기화
- 병합 : merge() 준영속성 -> 영속성
- @Entity : name을 설정하지 않으면 그대로 사용 / 기본 생성자는 필수 / final,enum,interface,inner 에는 사용할 수 없다. 저장할 필드에 final을 사용하면 안된다.
- @Table: name 생랴기 Entity 이름 사용 /
- @Enumerated : Java enum 매핑 / EnumType.String
- @Temporal : 날짜 타입 매핑
- @Lob: CLOB, BLOB 을 매핑
- 스키마 자동 생성 : 기존 테이블 지우고 다시 생성 / 개발에서만 사용하자
# application.properties spring.jpa.hibernate.ddl-auto=update
XML
hibernate.hdm2ddl.auto value="create"
16. sql_show
#application.properties
spring.jpa.hibernate.sql_show=true
XML
hibernate.sql_how value="true"
17. 매핑 전략 변경
- hibernate.ejb.naming_strategy
18. nullable = false : not null 추가
19. length = 10 : 길이 추가
20. 유니크 제약 조건 : @table(name="..", uniqueConstraints={@UniqueConstraint(name="...",columnNames={"...","..."})})
21. @GeneratedValue : 기본 키 생성 전략
22. @Id 매핑 가능한 타입 : 기본 , Wrapper, String, Date, BigDemical, BigInteger
23. IDENTITY 전략 : MySql , postgresql, SQL Server : AUTO_INCREMENT 가 있는 밴더 : @GeneratedValue(strategy=GenerationType.IDENTITY)
24. SEQUENCE 전략: 오라클, postgresql : @SequenceGenerator(name="...",sequenceName="...",initialValue=1,allocationSize=1) + @GeneratedValue(strategy=GenerationType.SEQUENCE,generator="...")
25. Table 전략 : 키생성 전용 테이블을 만들어 사용 : @TableGenerator(name="...",table="...",pkColumnValue="...",allocationSize=1) +@GeneratedValue(strategy=GenerationType.TALBE,generator="...")
26. Auto 전략 : 자동 : @GeneratedValue(strategy=GenerationType.AUTO)
27. Transient: DB 매핑x
28. Access : JPA 접근 방식 지정
29. @Column : name, nullable , length ,(BigDemical,BigInteger) percision, scale
30. @Colomn 생략지 자바 타입이 기본 타입일 경우를 주의하자
31. @Enumerated : EnumType.ORDINAL enum에 정의된 순서, EnumType.String enum정의된 이름 그대로,
32. @Temporal: Date,Calendar 등 날짜타입 TemporalType.DATE , TemporalType.TIME, TemporalType.TIMESTAMP, 생략시 Timestamp
33. @Access : 엔티티 접근방식 : AccessType.FIELD 필드 직접 접근, AccessType.PROPERTY 접근자 : 사용 생략시 @Id 위치에 따라 접근
34. 연관 관계
35. 방향 : 단방향, 양방향
36. 다중성: N:1, 1:N, 1:1, N:M
37. OWNER : 양방향으로 만들면 OWNER 를 정해야한다.
38. N:1 단방향 연관관계 : x는 하나의 y , y에는 여러 x, 게시물은 1명의 유저, 유저는 여러개의 게시물
39. x에는 y로 접근하는 필드 존재 , x에서는 y로 접근가능 , y에서는 x로 접근 불가
40. @ManuToOne : optional, fetch, cascade, targetEntity: 연관관계 엔티티 타입
41. @JoinColumn(name="연관관계 테이블 컬럼")
728x90