본문 바로가기

전체 글107

spring boot Service 코드 repository injection관련 spring에서는 Entity, Service, Repository등을 컴포넌트로 중앙에서 생성/관리하고 있다. service 단으로 repository를 주입하는 방법은 아래와 같다 필드 인젝션 @Repository @Transactional(readOnly = true) public class MemeberService{ @Autowired private final MemberRepository memberRepository; ... } spring에서 생성한 memberRepositry를 해당 필드에 자동으로 주입해준다 중간에 repository를 다른 것으로 변경하기 어렵다 Setter 인젝션 @Service @Transactional(readOnly = true) class MemberServi.. 2021. 12. 27.
Spring Boot Repository EntityManager / EntityManagerFactory 엔티티매니저 / 엔티티매니저팩토리 JPA를 시작하기 위해서는 엔티티 매니저 팩토리를 생성 후 앤티티 매니저 팩토리가 엔티티 매니저를 생성하여야 한다 앤티티 매니저 팩토리 생성 EntityManagerFactory emf = Persistence.createEntityManagerFactory("test") application.yml의 환경설정 정보를 가지고 entityManagerFactory를 생성 (통상적으로 META_INF/persistence.xml에서 persistence-unit 이름이 test와 같은 것을 찾아서 생성) JPA 동작 위한 기반 객체 생성 and 데이터베이스 커넥션 풀을 생성 -> 작업과 비용이 크므로 어플리케이션 전체에서 한번만 생성하는 것이 좋음 엔티티 매니저 생성 EntityManager em = emm.. 2021. 12. 27.
백준 14442번 : 벽 부수고 이동하기2 - 파이썬 Python https://www.acmicpc.net/problem/14442 14442번: 벽 부수고 이동하기 2 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 1,000), K(1 ≤ K ≤ 10)이 주어진다. 다음 N개의 줄에 M개의 숫자로 맵이 주어진다. (1, 1)과 (N, M)은 항상 0이라고 가정하자. www.acmicpc.net 생각하기 bfs 방식을 통해서 가장 먼저 목적지에 도착하면 해당 카운트를 return 하는 방식으로 생각 벽을 부순 횟수 K번에 대한 각각의 visited를 따로 구별해서 표현해야 visited[횟수][row][col] 벽 부순 횟수에 따라 row와 col에 방문한 적이 있는가 체크하여 방문하였으면 중복해서 방문하는 케이스를 줄인다. 구상하기 큐를 사용하여 bf.. 2021. 12. 26.
spring JPA 엔티티 Entity 어노테이션 정리 @ManyToOne 1:다 관계의 엔티티에서 다쪽 엔티티에 설치되는 필드의 어노테이션 DB 테이블 적으로 보면 외래키를 가지고 있으므로 JoinColumn 또한 해주어야 함 @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "product_id") // 외래키 이름 private Product product; @OneToMany 1:다 관계의 엔티티에서 1쪽 엔티티에 설치되는 필드의 어노테이션 mapped by를 통해 다쪽의 엔티티에서 어떠한 값과 매핑이 되는지 표시 @OneToMany(fetch = FetchType.LAZY, mappedBy = "product") private List orders = new ArrayList(); @Embeddable .. 2021. 12. 24.