일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 1차캐시
- spring서버
- 스프링부트오류
- REST API 규칙
- @IdClass
- 스프링 부트 기능
- jwt메서드
- 인텔리제이
- 최종 프로젝트
- 복합키
- git
- JPA
- json
- Q 클래스
- ERD 작성
- Spring Spring boot 차이
- jpa에러
- 스프링 부트 공식 문서
- JoinColumn
- json gson 차이
- github
- queryDSL
- Unsatisfied dependency
- Filter
- 빈생성안됨
- REST란
- Error creating bean with name
- JPA주의사항
- jpa회원가입
- uncheck Exception
- Today
- Total
목록내배캠 주요 학습/JPA 심화 (18)
Everyday Dev System

복합키 위에 @EmbeddedId를 기재하여 사용하는 방법이다. > 1. @Embeddable 과 @EmbeddedId와 매핑 2. @MapsId("user_id") 와 @Column(name="user_id") 이 매핑이 되므로, 값이 동일 복합키 UserChannelId 클래스 코드 1. @Embeddable → 클래스 위에 어노테이션 기재 2. @Column(name="user_id") → UserChannel 의 @MapsId("user_id") 속성값과 동일해야 한다. package me.chaeyoung.jpa.userChannel; import jakarta.persistence.Column; import jakarta.persistence.Embeddable; import lombok.Ac..

PK를 없애고 FK 두개로 복합키를 설정하는 방법이다. 2가지의 방식이 있는데, @IdClass로 하는 방법 먼저 소개하겠다. @EmbaddedId로 하는 방법은 다음 글을 참조하면 된다. 2023.07.31 - [내배캠 주요 학습/JPA 심화] - JPA 복합키 설정하기 - @EmbeddedId JPA 복합키 설정하기 - @EmbeddedId 복합키 위에 @EmbeddedId를 기재하여 사용하는 방법이다. > 1. @Embeddable 과 @EmbeddedId와 매핑 2. @MapsId("user_id") 와 @Column(name="user_id") 이 매핑이 되므로, 값이 동일 복합키 UserChannelId 클래스 코드 1. @Embedda cdev.tistory.com 먼저 현재 상황은, Use..

package me.chaeyoung.jpa.userChannel; import me.chaeyoung.jpa.channel.Channel; import me.chaeyoung.jpa.channel.ChannelRepository; import me.chaeyoung.jpa.user.User; import me.chaeyoung.jpa.user.UserRepository; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.te..

스레드가 채널 안에 여러개가 있으므로, 다대1 양방향 관계입니다. 아래와 같이 Entity 클래스 코드를 작성할 수 있습니다. 1. Channel 엔티티 클래스 코드 public void addThread(Thread thread){ this.threadList.add(thread); } 2. Thread 엔티티 클래스 코드 public void setChannel(Channel channel){ this.channel = channel; channel.addThread(this); } 3. Test Code Channel , Thread 엔티티 객체를 생성자를 통해 만든 후에, 양방향 연관 관계 설정을 위해서 Thread 클래스 내에 연관 관계 편의 메서드인 setChannel()을 호출. ( 해당 s..
package me.chaeyoung.jpa.channel; import jakarta.persistence.EntityManager; import jakarta.persistence.PersistenceContext; import org.springframework.stereotype.Repository; @Repository public class ChannelRepository { @PersistenceContext EntityManager entityManager; // persistenceContext 를 주입받아서 EntityManager 를 사용한다. public Channel insertChannel(Channel channel){ entityManager.persist(channel); ..
1. @Transient 을 entity 클래스 내에 멤버 변수에 기재할 경우 칼럼으로 맵핑되지 않는 멤버 변수 2. @Column @Entity 어노테이션을 기재할 경우 생략 가능. 자동으로 @Column이 붙음. 속성 값을 제한할 때에만 사용. @Column(name="id", nullable= false) 3. @Embeddable 이 어노테이션이 달린 클래스가 다른 엔티티 클래스의 일부로 포함가능. @Embedded @AttributeOverrides({ @AttributeOverride(name="city", column= @Column(name = "home_city")) }) private Address address; 이렇게 쓰면 city 칼럼명만 변경하여 칼럼이 생성되고, 나머지는 Add..

도커 컨테이너 생성이 선행되어 있어야 합니다. 이전글 참조: 또한, build.gradle 파일에 postgreSQL 의존성 추가가 필요합니다! implementation 'org.postgresql:postgresql:42.2.27' 1. 테이블 생성 → ' ACCOUNT ' @Test @DisplayName("Table 생성 실습") void jdbcTest() { DriverManager driverManager; String url = "jdbc:postgresql://localhost:5432/messenger"; String username = "chaeyoung"; String password= "pass"; //when try { Connection connection = DriverMan..

1. 인텔리제이에서 docker 백그라운드 설정 확인 터미널 콘솔 창에 docker 명령어를 입력해서 도커 명령어들을 조회한다. 이것이 실행이 된다면, 도커가 백그라운드에서 running 중이라는 의미이다. docker 명령어가 안된다면, 인텔리제이 혹은 터미널을 재시작해봐야 한다. 아래와 같이 docker desktop에서 running 중임을 확인할 수도 있다. 2. 백그라운드에 도커가 돌아가는 것을 확인한 후 아래 코드 입력 docker run -p 5432:5432 -e POSTGRES_PASSWORD=pass -e POSTGRES_USER=chaeyoung -e POSTGRES_DB=messenger --name postgres_boot -d postgres docker를 run해서 컨테이너를 ..