본문 바로가기

JPA3

[DB ORM] INSERT DEFAULT 트러블 슈팅 이슈 내용- flyway를 통한 DB 마이그레이션 툴을 이용하던 중, 특정 기능 구현으로 인해 post 테이블에 view_count와 likes_count를 추가해야하는 상황이 발생하였다. public class PostEntity extends BaseEntity { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "post_id") private Long id; private String userId; private String title; private String content; private String image; private String category; .. 2024. 7. 7.
JPA (Java Persistence API) 관련개념 간략 총정리 JPA 실전 예시설명 (기초개념 숙지 시, 보다 빠른 이해 도와줌) ★ Member Entity는 id, age가 존재한다고 가정 ● findById() 사용시 1. EntityManager.find(Member.class, id) 실행 2. 영속성 컨텍스트 1차 캐시 조회 3. (존재 시) 1차 캐시 Entity 반환 3. (미존재 시) DB조회 후 조회 결과 Entity로 반환하여 1차 캐시에 넣은 후 1차 캐시 Entity 반환 ● save() 사용시 1. EntityManager.persist(member) 실행 2. 영속성 컨텍스트 1차 캐시에 저장 3. 쓰기지연 SQL 저장소에 INSERT 쿼리저장 4. 트랜잭션이 커밋되기 전, flush를 수행하여 쓰기지연 SQL저장소의 모든 SQL을 DB에.. 2023. 1. 30.
JDBC / JPA, Mybatis 차이점 우선 영속성에 대한 이해가 필요하다. 영속성(Persistence) 1. 데이터를 생성한 프로그램이 종료되더라도 사리지지 않는 데이터의 특성을 말한다. 2. 영속성을 갖지 않는 데이터는 단지 메모리에서만 존재하기 때문에 프로그램이 종료되면 모두 잃어버리게 된다. 때문에 파일 시스템, 관계형 데이터베이스 혹은 객체 데이터베이스 등을 활용하여 데이터를 영구적으로 저장하여 영속성을 부여한다. SQL Mapper와 ORM Persistence Framework는 SQL Mapper 와 ORM으로 나뉜다. 1. ORM은 데이터베이스 객체를 자바 객체로 매핑함으로써 객체 간의 관계를 바탕으로 SQL을 자동으로 생성해주지만, SQL Mapper는 SQL을 명시해줘야 한다. 2. ORM은 관계형 데이터베이스의 '관계'.. 2022. 12. 20.