본문 바로가기
반응형

java12

[EffectiveJava] Item11 equals를 제정의하려거든 hashCode도 재정의하라 :) equals를 재정의한 클래스 모두 hashCode도 재정의해야한다 위에 적어놓은 소제목 처럼 hashCode를 재정의하지 않는다면 일반 규약을 어기게 되어 HashMap이나 HashSet같은 Collection에서의 원소로 사용될 때 문제를 일으키게 된다. Object 명세 규약 equals에 사용되는 핵심 필드가 변경되지 않았다면 , 실행되는 동안 hashCode메서드는 몇번을 호출해도 항상 같은 hashCode값을 반환햐야한다. equals가 두 객체를 같다고 판단하였다면 두 객체가 가지고있는 hashCode는 같은 값을 반환해야 한다. equals가 두 객체를 다르다고 했더라도, 두 객체의 hashCode가 서로 다른 값을 반환해야할 필요는 없다. 단, 다른 객체에 대해서는 다른 값을 반환해.. 2020. 12. 21.
[JPA] 영속성 컨텍스트의 특징 및 기본 구조 :) 영속성 컨텍스트의 특징 영속성 컨텍스트와 식별자 값 @Id 어노테이션으로 테이블의 기본키와 매핑된 값으로 구분한다. 따라서 영속 상태의 엔티티에서는 식별자 값이 필수이다. 만약 영속 상태에서 식별자 값이 없으면 예외가 발생한다. 영속성 컨텍스트와 데이터 베이스 저장 JPA 에서는 대게 트랜잭션이 끝나는(commit) 순간 데이터베이스에 영속성 컨텍스트에 있는 내용을 반영하는데 다음과 같은 과정을 flush라고 한다 영속성 컨텍스트가 엔티티를 관리하게 되었을때 얻을 수 있는 장점. 1차캐시, 동일설 보장, 트랜잭션을 지원하는 쓰기 지연, 변경 감지, 지연로딩 :) 엔티티 등록 영속성 컨텍스트에는 내부 캐시를 가지고 있을 수 있는 공간이 있는데 이것을 1차 캐시라고 부른다. 영속상태인 모든 엔티티는 모.. 2020. 12. 20.
[JPA] JPA 영속성 및 상태 이번 공부한 내용 정리에는 JPA를 통해 EntityManager를 사용하여 데이터를 CRUD하는 작업에 대해 알아봤는데 내부적으로 EntityManager가 어떻게 돌아가는지 확인해보겠습니다 :) EntityManagerFactory와 EntityManager EntitymanagerFactory는 데이터베이스를 하나만 사용하는 Application에서는 하나만 생성된다. EntityManagerFactory를 생성하는 방법은 다음과 같았다. // name - persistence.xml의 persistence-unit name을 의미함 EntityManagerFactory emf = Persistenct.createEntityManagerFactory(name); EntityManagerFactory.. 2020. 12. 20.
[JPA] JPA 실습 구성하기 - 2 전에 포스팅했던 실습 구성하기 1에 이은 2번째 포스팅입니다. 2번재 포스팅에서는 JPA가 어떻게 실행되었는지 1탄에 적었던 포스팅에 이어서 보겠습니다. public class JpaApplication { public static void main(String[] args) { ① EntityManagerFactory emf = Persistence.createEntityManagerFactory("jpa-sample"); ② EntityManager em = emf.createEntityManager(); //엔티티 매니저 생성 ③ EntityTransaction tx = em.getTransaction(); //트랜잭션 기능 획득 try { tx.begin(); ④ Member member = ne.. 2020. 12. 16.
반응형