분류 전체보기

Stack과 Queue 자바에서는 Stack과 Queue를 제공한다. 우선 자바에서 제공하는 Stack과 Queue를 알아보기 전에 Stack과 Queue 자료구조에 대해서 알아보도록 하자. 스택(Stack) [자료구조] - 스택(Stack) 스택(Stack) Stack이라는 단어는 더미, 혹은 쌓다 라는 의미의 단어로, 단어의 뜻 그대로 데이터를 쌓아 올린 형태의 자료구조입니다. 프링글스 통을 생각하면 편한데, 프링글스 통 안에 들어있는 ttl-blog.tistory.com 큐(Queue) https://ttl-blog.tistory.com/631 [자료구조] - 큐(Queue) 큐(Queue) Queue 라는 단어는 대기줄, 혹은 줄을 서서 기다리다 라는 의미의 단어로, 단어의 뜻인 줄에 대해 생각해..
병합과 변경감지 JPA를 사용할 때 일반적으로 데이터를 변경하는 경우에는 두가지 방법이 존재합니다 하나는 변경 감지(Dirty Checking)을 사용하는 것이고, 다른 하나는 병합 (merge())를 사용하는 것인데, 변경 감지를 사용하는 것을 권장합니다. 병합(merge)의 동작원리 병합을 사용한다면 우선 파라미터로 넘어온 준영속 엔티티의 식별자 값으로 1차 캐시에서 조회합니다. 만약 1차캐시에 엔티티가 없다면 데이터베이스에서 엔티티를 조회한 후 1차 캐시에 저장합니다. 조회한 영속 엔티티에 merge(새로운엔티티) 에서 넣어준 '새로운엔티티'의 값을 넣어줍니다. 이때 빈 값은 무시하는 것이 아니라 null로 채워넣습니다. 만약 merge()에 들어간 값들 중 null 값이 있다면 그 값이 무시되고 ..
스프링부트 사용 시 EntityManagerFactory를 주입받는 방법 @PersistenceUnit 또는 그냥 @Autowired를 사용해도 됩니다. 사용 @PersistenceUnit private EntityManagerFactory emf; Reference 실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발 - 인프런 | 강의 실무에 가까운 예제로, 스프링 부트와 JPA를 활용해서 웹 애플리케이션을 설계하고 개발합니다. 이 과정을 통해 스프링 부트와 JPA를 실무에서 어떻게 활용해야 하는지 이해할 수 있습니다., 스프 www.inflearn.com
엔티티, 테이블, 컬럼명 생성 전략 https://docs.spring.io/spring-boot/docs/2.1.3.RELEASE/reference/htmlsingle/#howtoconfigure-hibernate-naming-strategy https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#naming 원래 하이버네이트는 엔티티의 필드명을 그대로 테이블의 컬럼명으로 사용했습니다. 그러나 스프링 부트를 사용한다면 스프링 부트의 SpringPhysicalNamingStrategy가 이름을 바꿔줍니다. 스프링 부트 기본 설정 SpringPhysicalNamingStrategy가 기본으로 바꿔주는 설..
계층형 구조 매핑하기 @Entity @Getter public class Category { @Id @GenerateValue @Column(name = "CATEGORY_ID") private Long id; private String name; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "PARENT_ID") private Category parent; @OneToMany(mappedBy = "parent") private List child = new ArrayList(); } 이름만 자기 자신이지, 그냥 다른 엔티티에 매핑하는 느낌으로 매핑해주면 됩니다. 생성되는 테이블은 다음과 같습니다. Reference 실전! 스프링 부트와 JPA 활용1 ..
dependencies { compileOnly 'org.projectlombok:lombok' annotationProcessor 'org.projectlombok:lombok' testCompileOnly 'org.projectlombok:lombok:1.18.12' // 테스트 의존성 추가 testAnnotationProcessor'org.projectlombok:lombok:1.18.12' // 테스트 의존성 추가 }
페치 조인(fetch join) 페치 조인이란 SQL 조인의 종류가 아니며, JPQL에서 성능 최적화를 위해서 제공해주는 기능입니다. 페치 조인은 엔티티를 조회할 때 연관된 엔티티나 컬렉션을 한번의 SQL로 함께 조회하는 기능을 제공함으로써 N+1문제를 해결할 수 있게 도와줍니다. 일반 조인은 실행 시 연관된 엔티티를 함께 조회하지 않습니다. 단지 데이터베이스 상에서 테이블간의 탐색을 위해 사용되는 것입니다. 기존 조인의 문제 @Entity class Member( @Id @Column(name = "member_id") @GeneratedValue(strategy = GenerationType.IDENTITY) var id: Long = 0, var username: String, var age: In..
· 🐳 TIL
오늘 공부한 내용 [자바 ORM 표준 JPA 프로그래밍] - 객체지향 쿼리 언어 1, 2 복습 (페치 조인 제외) [자바의 정석] 컬렉션 프레임워크, ArrayList와 LinkedList 공부 [이것이 취업을 위한 코딩 테스트다] - 그리디 알고리즘 2번째 문제 풀기 [오브젝트] 3장 - 역할, 책임, 협력 읽기 💭느낀 점 & 배운 점 JPQL을 복습하며, 지금까지 @Entity에서 name 속성으로 엔티티의 이름을 정해서 대체 어디에 썼었나 의문을 가졌는데, JPQL에서 쓰인다는 것을 알고 조금 놀라웠다. (지금까지 이것도 모르고 어떻게 쓴거지 대체;;) 참고로 "스토어드 프로시저"라는 단어를 언급들었는데, 아직 뭔지 잘 모르겠어서 후에 데이터베이스를 제대로 공부할 때 꼭 다뤄봐야 겠다고 생각했다. ..
말 랑
'분류 전체보기' 카테고리의 글 목록 (162 Page)