본문 바로가기
728x90
반응형

분류 전체보기582

[JPA/Java] 엔티티 매핑 (객체, 테이블, 필드, 컬럼, 기본 키 등) 객체와 테이블 매핑 : @Entity, @Table 필드와 컬럼 매핑 : @Column 기본 키 매핑 : @Id 연관관계 매핑 : @ManyToOne, @JoinColumn @Entity @Entity가 붙은 클래스는 JPA가 관리하고, 이를 엔티티라 한다. JPA를 사용해서 테이블과 매핑할 클래스는 @Entity를 필수로 붙인다. ※ 주의 → 기본 생성자를 필수로 한다. (파라미터가 없는 public 또는 protected 생성자) → final 클래스, enum, interface, inner 클래스 사용하지 않음 → 저장할 필드에 final 사용하지 않음 @Entity 속성 정리 - 속성 : name : JPA에서 사용할 엔티티 이름을 지정한다. : 기본값 - 클래스 이름을 그대로 사용(예 : Me.. 2023. 1. 22.
[JPA/JAVA] 플러시 & 준영속 상태 플러시란? : 영속성 컨텍스트의 변경내용을 데이터베이스에 반영 플러시가 발생하는 때는? - 변경을 감지할 때 - 수정된 엔티티를 쓰기 지연 SQL 저장소에 등록할 때 - 쓰기 지연 SQL 저장소의 쿼리(등록, 수정, 삭제 쿼리)를 데이터베이스에 전송할 때 영속성 컨텍스트를 플러시하는 방법은 3가지가 있는데 - em.flush() -- 직접 호출 - 트랜잭션 커밋 -- 플러시를 자동 호출 - JPQL 쿼리 실행 -- 플러시를 자동 호출 가 있다. 직접 호출하는 em.flush()의 경우 Member member = em.find(Member.class, 150L); member.setName("ZZZZ"); em.flush(); System.out.println("=================="); 원.. 2023. 1. 12.
[JPA/JAVA] 영속성 컨텍스트 영속성 컨텍스트는 JPA에서 나오는 개념이다 JPA를 이해하기 위해서는 가장 중요한 2가지 개념이 있는데 하나는 객체와 관계형 데이터베이스 매핑하기(Object Relational Mapping) 두 번째는 바로 영속성 컨텍스트가 있다. 영속성 컨텍스트를 이해하는 것이 실제로 JPA가 내부에서 실제로 어떻게 동작하는지 이해하는데 가장 큰 중요한 대목이 될 것이다. 영속성 컨텍스트를 이해하기 위해서는 엔티티의 영속을 관리하는 엔티티 매니저와 엔티티 매니저를 관리하는 엔티티 매니저 팩토리를 이해할 필요가 있다. 엔티티 매니저 팩토리는 들어오는 요청에 따라 엔티티 매니저를 생성한다. 그리고 엔티티 매니저는 영속을 위해 데이터베이스와 연결하기 전, 커넥션 풀을 사용하여 영속을 준비한다 (persist) 영속성 .. 2023. 1. 11.
[Trouble shooting / JPA / H2] JPA hibernate.properties not found / Could not load requested class : org.h2.Driver JPA를 실습해보기 위해서, Maven project를 만들고 pom.xml에 4.0.0 org.example ex1-hello-jpa 1.0-SNAPSHOT org.hibernate hibernate-entitymanager 5.3.10.Final com.h2database h2 2.1.214 test 11 11 와 같이 JPA Hibernate와 H2 데이터베이스 dependency를 추가하였다. 그리고 src/main/resource/METE-INF 디렉토리에 persistence.xml를 생성하여 H2 데이터베이스 정보를 넣어주었다. main 함수를 만들어서 EntityManagerFactory를 호출하여 정상적으로 작동하는지 확인해봤다. package hellojpa; import javax.p.. 2022. 11. 29.
[Trouble Shooting / H2 Database] IO Exception: "C:/Program Files (x86)/H2/bin/studyJpa.mv.db" [90028-214] H2 콘솔에서 신규로 사용자를 추가하려면 어떻게 해야할까? 위에 활성화된 아이콘을 우클릭하면 Create a new database 클릭 위와 같이 화면이 뜬다 studyJPA 로 하고 비밀번호를 입력하면 다음과 같이 나온다 IO Exception: "C:/Program Files (x86)/H2/bin/studyJpa.mv.db" [90028-214] 위와 같은 에러를 해결하려면? 파일 탐색기에서 위와 같은 경로에 위와 같은 경로명으로 쓸 db 파일을 만든다. 다시 위와 같이 접속 실행 접속이 되는 걸 확인할 수 있다. 2022. 10. 26.
[개발 서적] 클린코드를 읽고 나서 기억나는 것만 정리 클린코드.. 꽤나 두꺼운 책이었다. 책 모퉁이에 적혀있는 페이지 최대 수만 550 페이지였다. 너무 내용이 많아서 기억나는 것만 정리해본다. 나중에 스스로 돌아봤을 때 클린한 코드를 실천하는 개발자가 되었는지 되돌아보기 위해 책의 순서와 상관 없는 기록이오니 참고 바람.. 1. 주석은 꼭 필요한 내용만 쓴다. 소스에 대한 전체적인 흐름이나 프로세스만 알아보기 쉽게 정리한다. 모든 소스에 대해 일일이 설명할 필요는 없다. 소스 코드에 대해 일일이 해석이 필요한 주석은 사용하지 말아야한다. 소스코드가 바뀌면 주석도 바뀌나? 절대 아니다 소스코드에 대한 이력은 형상관리가 알아서 해줄 것이다. 2. 소스코드는 하나의 소설과 같다. 우리가 책을 읽을 때 내용을 쭈욱 읽어나가는 것처럼, 소스코드 또한 마찬가지이다... 2022. 10. 12.
728x90
반응형