일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 백준
- http
- 스프링 핵심 기능
- QueryDSL
- 그리디
- JPQL
- 김영한
- 스프링
- 인프런
- Greedy
- kotlin
- Android
- db
- pointcut
- 자바
- Thymeleaf
- Exception
- Spring Boot
- spring
- SpringBoot
- jpa
- AOP
- JDBC
- 스프링 핵심 원리
- springdatajpa
- 알고리즘
- Servlet
- java
- Proxy
- transaction
- Today
- Total
목록jpa (149)
개발자되기 프로젝트
https://github.com/bsh6463/BookManager bsh6463/BookManager Contribute to bsh6463/BookManager development by creating an account on GitHub. github.com 1. Entity Manager Entity Manager란? Entity의 저장, 수정, 삭제, 업데이트 등 말그대로 entity를 관리함. 기존에 사용한 simple jpa repository는 직접적으로entity manager를 사용하지 않도록 감싸 spring에서 제공했음 실제 내부 동작은 entity manager을 통해서 이루어진다. 따라서 spring data jpa에서 제공하지 않는 기능을 사용하거나 특별히 custom을 할..
1. Transaction 데이터 베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위. 예를들어 A가 B에게 100만원을 송금한다 할 때. 논리적인 기능은 송금. 송금을 위한 작업은 "A인출+A잔액 업데이트 +B입금+B잔액 업데이트" 즉 어떤 논리적 기능을 위해 query를 connection으로 묶어서 DB에 전달, 에러 발생 시 원래대로 돌려놓는 기능. 2. @Transactoinal - spring에서 제공하는 선언적 transaction이다. annotaion을 붙이면 해당 method나 class에 transaction이 적용 가능. - 상위에서 @Transactional로 묶지 않으면 내부에서 만 transaction으로 묶어준다. save로 예를 들면 자체적으로 @Tr..
1. Context란? framework에서 container가 관리하고 있는 내용을 context라함 Spring의 경우 bean들을 로딩, 관리하는 작업들을 spring context위에서 활용되고 있음 즉, persistance container가 관리하고 있는 내용 * container, bean, Ioc Bean & Ioc & Application Context 1. Ioc(Inversion of Control) 스프링에서는 일반적인 JAVA 객체를 new로 생성하여 개발자가 관리하는 것이 아닌! Spring Container에 모두 맡긴다. 즉, 개발자에서 -> 프레임워크로 제어의 객체 관리의 권한이 bsh-developer.tistory.com 2. persistence란? 영속화, 사라지지..
사실 ManyToMany관계를 직접적으로 많이 사용하지는 않는다고 한다. 그리고 ManyToMany는 내가 만들지 않은 중간 테이블을 생성하게 된다. 앞의 글에서 Book과 Author은 many to many 관계인데, 중간에 BookAndAuthor가 있다고 해보자. 즉, Book : BookAndAuthor , BookAndAuthor : Author의 관계이다. BookAndAuthor입장에서 정리하면 아래처럼 나타낼 수 있다. BookAndAuthor : Book = N : 1 BookAndAuthor : Author = N : 1 즉, 1개의 many to many 관계가 아니라, 2개의 many to one 관계로 변경이 가능하다. 1. BookAndAuthor - BookAndAuthor ..
이전에 작성한 ERD를 보면 book와 author가 다대다 관계이다. 1. Author Author와 Book은 M : N 관계이다. books에 @ManyToMany를 적용 @Entity @Data @NoArgsConstructor @ToString(callSuper = true) @EqualsAndHashCode(callSuper = true) public class Author extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long Id; private String name; private String country; @ManyToMany @ToString.Exclude private List ..
다른 entiry에 대해서도 연관관계를 맺어주자. 1. Book 1) Book : Review = 1 : N --> @OneToMany -->중간 table 만들지 않기 위해 @JoinColumn필수 @JoinColumn(name = "book_id") --> name = "one_PK", 현재 class의 PK를 many의 FK로. List reviews = new ArraryList(); --> Null Point Exception방지를 위해 생성. 2) Book : Publisher = N : 1 --> @ManyToOne @Entity @NoArgsConstructor @Data @EntityListeners(value = AuditingEntityListener.class) @ToString(c..
1 : N 연관관계 - 1 이전에 만들어둔 User entity와 User History는 1:N연관관계를 갖는다. User는 현재 회원정보를 가지고 있는 테이블이고 UserHistory는 특정 user id에 저장된 값이 변경된 내역을 저장하는 table이다. 1. test @.. bsh-developer.tistory.com 앞서 1 : N의 연관관계를 살펴보았다. 1 : N 관계를 이해하기 어려웠던 이유는 N(many)쪽에서 1(one)의 PK를 FK로 가지고 있었기 때문이다. 일반적으로는 @ManyToOne이 깰끔하게entity를 구성할 수 있따. 해당 entity가 필요로 하는 FK값을 entity가 함께 가지고 있다. 이전에는 User class에서 @OneToMany를 적용했다면, 이번번에는..
이전에 만들어둔 User entity와 User History는 1:N연관관계를 갖는다. User는 현재 회원정보를 가지고 있는 테이블이고 UserHistory는 특정 user id에 저장된 값이 변경된 내역을 저장하는 table이다. 1. test @Test void userRelationTest(){ User user = new User(); user.setName("David"); user.setEmail("dabid@navergoogle.com"); user.setGender(Gender.MALE); userRepository.save(user); userHistoryRepository.findAll().forEach(System.out::println); } } 먼저 relation을 테스트 하..