일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 |
- 스레드
- static
- 감사기록
- 변수의 다양성
- Github_token
- #스파르타내일배움캠프
- Git
- 회고록
- diary
- KPT
- 인스턴스
- 내일배움캠프
- GitHub
- 메서드
- Java
- 스파르타내일배움캠프
- 해우소
- Diary 해우소
- Java의 이점
- JVM
- 클래스
- 생성자
- TiL_1st_0419
- 객체지향 언어
- 포맷은 최후의 보루
- #스파르타내일배움캠프TIL
- 성장기록
- #내일배움캠프
- 스파르타내일배움캠프TIL
- Token
- Today
- Total
목록2024/06 (55)
몬그로이
ORM 은 DAO 또는 Mapper 를 통해서 조작하는것이 아니라테이블을 아예 하나의 객체(Object)와 대응시켜 버립니다.객체지향(Object) 을 관계형 데이터베이스(Relation) 에 매핑(Mapping) 한다는건정말 많은 난관이 있습니다. 어떻게 해결했는지 알아볼까요? 상속의 문제객체 : 객체간에 멤버변수나 상속관계를 맺을 수 있다.RDB : 테이블들은 상속관계가 없고 모두 독립적으로 존재한다.해결방법 : 매핑정보에 상속정보를 넣어준다. (@OneToMany, @ManyToOne) 관계 문제객체 : 참조를 통해 관계를 가지며 방향을 가진다. (다대다 관계도 있음)RDB : 외래키(FK)를 설정하여 Join 으로 조회시에만 참조가 가능하다. (즉, 다대다는 매핑 테이블 필요) 해결방법 : 매핑..
Cascade (영속성 전이)사용 조건양쪽 엔티티의 라이프사이클이 동일하거나 비슷해야한다.예를들어, 게시글이 삭제되면 첨부파일도 같이 삭제 되어야 한다.대상 엔티티로의 영속성 전이는 현재 엔티티에서만 전이 되어야 한다. (다른곳에서 또 걸면 안됨)예를들어, 첨부파일을 게시글이 아닌 다른곳에서 영속성 전이를 하면 안된다.옵션 종류ALL : 전체 상태 전이PERSIST : 저장 상태 전이REMOVE : 삭제 상태 전이MERGE : 업데이트 상태 전이REFERESH : 갱신 상태 전이DETACH : 비영속성 상태 전이 orphanRemoval (고아 객체 제거) 사용법Cascade.REMOVE 와 비슷한 용도로 삭제를 전파하는데 쓰인다.부모 객체에서 리스트 요소삭제를 했을경우 해당 자식 객체는 매핑정보가 없어..
PagingAndSortingRepository : 여기에서 페이징 & 소팅 기능을 제공 페이징 처리 프로세스PageRequest 를 사용하여 Pageable에 페이징 정보를 담아 객체화 한다.Pageable을 JpaRepository가 상속된 인터페이스의 메서드에 T(Entity)와 함꼐 파라미터로 전달한다.2번의 메서드의 return 으로 Page가 응답 된다.응답된 Page에 담겨진 Page 정보를 바탕으로 로직을 처리하면 된다 Pageable 객체 생성을 위한 메서드 정의*PageRequest 객체에 만들고, service 단에서 사용한다PageRequest.of(int page, int size) : 0부터 시작하는 페이지 번호와 개수. 정렬이 지정되지 않음PageRequest.of(int ..
https://mongroy.tistory.com/122 SQLcolum 선택select * table 선택FROM payments Column명 이름 바꿔 조회하기select order_id ord_no, price "가격", 대소문자 구별WHERE cuisine_type='korean'WHERE cuisine_type='Korean' 영문은 작은 따옴표(') 붙여주고한글은 큰mongroy.tistory.comhttps://mongroy.tistory.com/123 SQL 02if (조건, 조건을 충족시, 조건 미충족시)select restaurant_name, cuisine_type "원래 음식 타입", if(cuisine_type='Korean', '한식', '기..
Processing to run once : application 실행 시 처음에 한 번 작동하는 프로세스(1) : application 이 SqlSession Factory Builder를 build 하도록 요청(2) ~ (3) : SqlSession Factory Builder 가 설정된 MyBatis Config File 을 참고하여 SqlSession Factory 를 생성함 Processing to run per requests : application 이 작동하는 동안 수행되는 프로세스(4) : client 로부터 request 를 받음(5) : application 이 SqlSession Factory 에게 SqlSession 을 생성하도록 시킴(6) : 그에 따라 config 설정에 맞게 ..
if (조건, 조건을 충족시, 조건 미충족시)select restaurant_name, cuisine_type "원래 음식 타입", if(cuisine_type='Korean', '한식', '기타') " 음식 타입"from food_orders* 음식 타입이 'Korean' 일 때는 한식, 아닐 때는 기타 로 적어줘select addr "원래 주소",if(addr like '%평택군%', replace(addr, '문곡리', '문가리'), addr) "바뀐 주소"from food_orderswhere addr like '%문곡리%'*주소가 평택군을 포함할 때 문곡리를 문가리로, 아닐때는 그대로 적어줘 조합하여 사용하기select substring(if(email lik..
colum 선택select * table 선택FROM payments Column명 이름 바꿔 조회하기select order_id ord_no, price "가격", 대소문자 구별WHERE cuisine_type='korean'WHERE cuisine_type='Korean' 영문은 작은 따옴표(') 붙여주고한글은 큰 따옴표 (") 붙여주기 - 문자 취급 select name "이름", email "e-mail"* e-mail 에는 dash 가 들어가 있으므로 문자로 취급해야 함value 값 지정하여 row 선택WHERE pay_type='card' value 범위 지정하여 row 선택WHERE gender 'male'WHERE age between 21 and 23WHERE age 21, 23 '해당..
https://mongroy.tistory.com/117 H2 연결 오류 해결하기https://velog.io/@semi-cloud/H2-%EC%A0%91%EC%86%8D-%EC%98%A4%EB%A5%98%EC%9C%88%EB%8F%84%EC%9A%B0-%EA%B8%B0%EC%A4%80 [DB] H2 접속 오류(윈도우 기준)H2 데이터베이스 파일 생성 방법은 다음과 같다.jdbc:h2:~/datajpa //db 파일 생성mongroy.tistory.comhttps://mongroy.tistory.com/118 H2H2 사용하는 강의를 듣는데나에겐 TODO 테이블이 없어서 대충 만들어주는 것을 시작으로 query 문을 다루기 시작했다 Table 생성CREATE TABLE TODO(NAME VARCHAR(2..