본문 바로가기

Java29

[JPA] DirtyCheck vs merge 준영속(detached) 엔티티 준영속 엔티티란 준영속 상태의 엔티티로 JPA가 더는 관리하지 않는 엔티티, 즉 영속성 컨텍스트에 저장되었다가 분리된 상태인 엔티티를 말한다. 또한, DB에 한번 저장된 엔티티는 식별자가 존재하는데, 기존 식별자를 가지고 있다면 준영속 엔티티로 볼 수 있다. 준영속 엔티티는 영속성 컨텍스트가 제공하는 기능을 사용하지 못한다. /* 준영속 상태로 만드는 방법 */ em.detach(entity); // 특정 엔티티 준영속 상태로 전환 em.clear(); // 영속성 컨텍스트 초기화 em.close(); // 영속성 컨텍스트 종료 Item item = new Item(); item.setId(id); // id가 기존 식별자라면 기존 식별자를 가진 item은 준영속 엔티티라.. 2022. 5. 15.
[Java] String vs StringBuilder vs StringBuffer String String 인스턴스 생성 방법에는 다음과 같이 두 가지가 있다. String str1 = new String("java") String str2 = "java" 두 방법으로 생성된 인스턴스는 약간의 차이가 있다. 다음 생성된 String 인스턴스들을 살펴보자 String str1 = new String("java") String str2 = new String("java") String str3 = "java" String str4 = "java" 생성된 String 인스턴스들을 ==을 사용해 비교해 보면 str1과 str2는 다른 인스턴스를 참조하지만 str3와 str4는 같은 인스턴스를 참조한다는 것을 알 수 있다. 왜 이런 차이가 발생할까? String 인스턴스는 Immutable한 .. 2022. 3. 17.