분류 전체보기72 [JPA] 연관관계 매핑 연관관계가 필요한 이유 다음과 같은 상황을 가정해 보자. 회원과 팀이 있다. 회원은 하나의 팀에만 소속될 수 있다. 회원과 팀은 다대일 관계다. 객체를 테이블에 맞추어 모델링하는 경우 (연관관계가 없는 객체) 데이터베이스는 외래키 하나로 양쪽 테이블 조인이 가능하기 때문에 위와 같이 모델링할 수 있다. 객체 연관관계도 데이터베이스 테이블 연관관계와 동일하게 모델링하였다. 코드로 나타내면 다음과 같다. @Entity public class Member { @Id @GeneratedValue private Long id; @Column(name = "USERNAME") private String name; @Column(name = "TEAM_ID") private Long teamId; … } @Entit.. 2023. 2. 28. [JPA] 기본 키 매핑 방법 기본 키 매핑 방법 직접 할당 자동 생성 직접 할당 @ID만 사용하여 기본 키를 정하고 값을 직접 할당하는 방법이다. Member member = new Member(); member.setId("1"); // 기본키 직접 할당 em.persist(member); 자동 생성 @GenerateValue를 사용하여 자동으로 기본키를 생성한다. IDENTITY: 기본키 생성을 데이터베이스에 위임한다. SEQUENCE: 데이터베이스 시퀀스 오브젝트를 사용한다. TABLE: 키 생성용 테이블을 사용한다. • AUTO: 방언에 따라 자동 지정한다. 기본 값이다. IDENTITY 전략 기본 키 생성을 데이터베이스에 위임한다. 주로 MySQL, PostgreSQL, SQL Server, DB2에서 사용한다. (MySQ.. 2023. 2. 27. [JPA] 영속성 컨텍스트 영속성 컨텍스트 영속성 컨텍스트란 엔티티를 영구 저장하는 환경이라는 뜻이다. 엔티티 매니저를 통해 영속성 컨텍스트에 접근하여 엔티티를 관리하고 데이터베이스에 저장할 수 있다. - entityManager.persist(entity) : 엔티티 매니저를 사용해 엔티티를 영속성 컨텍스트에 저장한다. 엔티티의 생명주기 비영속 (new/transient) : 영속성 컨텍스트와 전혀 관계가 없는 새로운 상태 영속 (managed) : 영속성 컨텍스트에 관리되는 상태 준영속 (detached) : 영속성 컨텍스트에 저장되었다가 분리된 상태 삭제 (removed) : 삭제된 상태 비영속 객체를 생성했지만 영속성 컨텍스트에서 관리하지 않는 상태를 의미한다. //객체를 생성한 상태(비영속) Member member = .. 2023. 2. 26. [백준] C++ 1991번 트리 순회 문제 https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1 ≤ N ≤ 26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 알파 www.acmicpc.net 접근 방법 트리를 순회하는 방법에 대한 문제이다. 먼저 트리를 구현하는 방법에는 여러 가지가 있는데 그중에서 map으로 트리를 구현하였다. map의 key에 부모 노드를 저장하고, pair에는 각각 왼쪽 자식과 오른쪽 자식을 저장하였다. 순회는 재귀로 진행하여 자식 노드가 없을 때 종료되게 하였다. 코드 #include #include using namespace std; int .. 2023. 2. 21. [백준] C++ 1389번 케빈 베이컨의 6단계 법칙 문제 https://www.acmicpc.net/problem/1389 1389번: 케빈 베이컨의 6단계 법칙 첫째 줄에 유저의 수 N (2 ≤ N ≤ 100)과 친구 관계의 수 M (1 ≤ M ≤ 5,000)이 주어진다. 둘째 줄부터 M개의 줄에는 친구 관계가 주어진다. 친구 관계는 A와 B로 이루어져 있으며, A와 B가 친구라는 뜻 www.acmicpc.net 접근 방법 모든 사람들이 연결되어 있는 상황을 그래프로 표현해 보았다. 이때 두 사람 간의 이어지는 단계는 그래프에서의 두 정점의 최단 거리라고 볼 수 있다. 케빈 베이컨 게임은 모든 사람들 간의 최단 거리가 필요하므로 이때 적용할 수 있는 알고리즘은 플로이드 와샬 알고리즘이다. 코드 #include #include #include using .. 2023. 2. 12. [백준] C++ 1260번 DFS와 BFS 문제 https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 접근 방법 주어진 그래프에 대하여 dfs와 bfs의 수행 결과를 출력하는 간단한 문제이다. 그래프는 vector를 통해 구현하였고 시작점으로부터 dfs와 bfs를 수행하여 방문된 점을 출력하였다. 코드 #include #include #include #include using namespace std; int n, m, v, x, y; bool check.. 2023. 2. 8. 이전 1 ··· 5 6 7 8 9 10 11 12 다음