JPA Entity Equality
1. 고려사항 일반적으로 동등성은 단순히 두 객체가 동일하다는 것을 의미한다. 그러나 Java에서는 Object.equals() 및 Object.hashCode() 메서드를 재정의하여 동등성의 정의를 변경할 수 있다. 궁극적으로 Java는 동등함이 무엇을 의미하는지 정의할 수 있도록 한다. 그러나 먼저 고려해야 할 몇 가지 사항이 있다. 1) Col...
1. 고려사항 일반적으로 동등성은 단순히 두 객체가 동일하다는 것을 의미한다. 그러나 Java에서는 Object.equals() 및 Object.hashCode() 메서드를 재정의하여 동등성의 정의를 변경할 수 있다. 궁극적으로 Java는 동등함이 무엇을 의미하는지 정의할 수 있도록 한다. 그러나 먼저 고려해야 할 몇 가지 사항이 있다. 1) Col...
1. 유래 이러한 주석은 모두 필드 크기를 전달하기 위한 것이다. @Size와 @Length는 유사하다. 두 주석 중 하나를 사용하여 필드 크기의 유효성을 검사할 수 있다. 전자는 Java 표준 주석인 반면 후자는 Hibernate에만 해당 된다. @Column은 DDL 문을 제어하는데 사용하는 JPA 주석 이다. 2. @Size 검증을 위해 @...
1. 기본 테이블 이름 JPA 기본 테이블 이름 생성은 구현에 따라 다르다. 예를 들어, Hibernate에서 기본 테이블 이름은 첫 글자가 대문자인 클래스 이름이다. 이는 ImplicitNamingStrategy 계약을 통해 결정된다. 그러나 PhysicalNamingStrategy 인터페이스를 구현 하여 이 동작을 변경할 수 있다. 2. @T...
1. 기본 유형 JPA는 기본 유형이라고도 하는 엔터티의 지속 가능한 필드로 다양한 Java 데이터 유형을 지원한다. 기본 유형은 데이터베이스의 열에 직접 매핑된다. 여기에는 Java 기본 요소 및 해당 래퍼 클래스, String, java.math.BigInteger 및 java.math.BigDecimal, 사용 가능한 다양한 date-time ...
1. Entity를 생성하는 동안 기본 열 값을 설정하는 첫 번째 방법은 이를 엔터티 속성 값으로 직접 설정하는 것이다. @Entity public class User { @Id private Long id; private String firstName = "John Snow"; private Integer age = 2...
1. JPA Entity Lifecycle Events JPA는 다음과 같이 호출되는 7개의 선택적 수명 주기 이벤트를 지정한다. 새로운 엔터티에 대해 지속성이 호출되기 전 - @PrePersist 새로운 엔터티에 대해 지속성이 호출된 후 - @PostPersist 엔터티가 제거되기 전 - @PreR...
1. Helper Methods 여기에서 helper methods를 일관되게 사용한다. HibernateLifecycleUtil.getManagedEntities(session) - 세션의 내부 저장소에서 모든 관리되는 엔터티를 가져오는데 이를 사용한다. DirtyDataInspector.getDirtyEntitie...
1. Entity JPA의 엔터티는 데이터베이스에 지속될 수 있는 데이터를 나타내는 POJO일 뿐이다. 엔터티는 데이터베이스에 저장된 테이블을 나타낸다. 엔터티의 모든 인스턴스는 테이블의 행을 나타낸다. 1) Entity Annotation 학생의 데이터를 나타내는 Student라는 POJO가 있고 이를 데이터베이스에 저장하고 싶다고 가정한다. p...
1. Stream Elements를 List로 수집 스트림에서 목록을 가져오는 것은 스트림 파이프라인에서 가장 많이 사용되는 터미널 작업 이다. Java 16 이전에는 Stream.collect() 메서드를 호출하고 이를 수집기에 인수로 전달하여 요소를 수집했다. Collector 자체는 Collectors.toList() 메서드를 호출하여 생성되었다...
1. skip() 메소드 skip(n) 메서드는 스트림의 처음 n개 요소를 삭제하는 중간 작업 이다. n 매개 변수는 음수일 수 없으며 스트림 크기보다 큰 경우 skip()은 빈 스트림을 반환한다. 예이다. Stream.of(1, 2, 3, 4, 5, 6, 7, 8, 9, 10) .filter(i -> i % 2 == 0) .s...