본문 바로가기
반응형

전체 글222

[EffectiveJava] Item12 toString을 항상 재정의하라 toString() 은 Java개발을 하는 누구라도 한번쯤은 봤을법한 메서드 입니다. toString()메서드는 Class의 최상의 부모인 Object의 기본 메서드 입니다. Object.toString()메서드는 우리가 볼수 있는 적당한 문자열을 반환하는게 아니라 클래스이름@16진수로 표시한 해시코드를 문자열로 반환한다. toString의 일반 규약에 따르면 간결하면서 사람이 보기 쉬운 형태의 정보를 반환해야 한다. toString()의 규약은 모든 하위 클래스에서 이 메서드를 재정의하라고 한다. 실제로 개발시에도 toString()을 재정의하여 많이 사용한다. toString()같은 경우는 재정의하면 훨신 보기 쉽고 디버깅 하기도 쉽습니다. toString()메서드는 객체를 print를 통해 출력하고.. 2020. 12. 21.
[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.
반응형