Hibernate 객체 삭제
1. 객체 삭제의 다양한 방법 다음과 같은 경우에는 객체를 삭제할 수 있다. EntityManager.remove를 사용 다른 엔터티 인스턴스에서 삭제가 연쇄적으로 수행되는 경우 orphanRemoval이 적용되는 경우 delete JPQL 문을 실행 네이티브 쿼리...
1. 객체 삭제의 다양한 방법 다음과 같은 경우에는 객체를 삭제할 수 있다. EntityManager.remove를 사용 다른 엔터티 인스턴스에서 삭제가 연쇄적으로 수행되는 경우 orphanRemoval이 적용되는 경우 delete JPQL 문을 실행 네이티브 쿼리...
1. 설정 1) 샘플 데이터 모델 예제에서 사용할 샘플 데이터 모델이다. 먼저, School 엔티티를 생성한다. @Entity public class School { @Id @GeneratedValue(strategy = GenerationType.SEQUENCE) private long id; private St...
1. JPA에서 객체 유지 JPA에서는 일시적 상태에서 관리형 상태로 전환되는 모든 엔터티는 EntityManager에 의해 자동으로 처리된다. EntityManager는 주어진 엔터티가 이미 존재하는지 확인한 다음 삽입할지 업데이트할지 결정한다. 이러한 자동 관리로 인해 JPA에서 허용되는 유일한 명령문은 SELECT, UPDATE 및 DELETE...
1. HQL 및 setFirstResult, setMaxResults API를 사용한 페이징 Hibernate에서 페이징을 하는 가장 간단하고 일반적인 방법은 HQL을 사용하는 것이다. Session session = sessionFactory.openSession(); Query<Foo> query = session.createQuery...
1. JQL 및 setFirstResult(), setMaxResults() API를 사용한 페이지 매김 페이지 매김을 구현하는 가장 간단한 방법은 Java 쿼리 언어를 사용하는 것이다. 즉, 쿼리를 만들고 setMaxResults 및 setFirstResult를 통해 구성한다. Query query = entityManager.createQuery...
1. JPA/JQL API를 사용한 정렬 JQL을 사용하여 정렬하려면 Order By 절을 사용한다. String jql ="Select f from Foo as f order by f.id"; Query query = entityManager.createQuery (jql); 이 쿼리를 기반으로 JPA는 다음과 같은 간단한 SQL 문을 생성한다...
1. 샘플 애플리케이션 예를 들어, 각각 id, name, color, grade를 갖는 Item 엔터티가 있다. @Entity public class Item { @Id private Long id; private String color; private String grade; private String nam...
1. 잠금 모드 JPA 사양은 세 가지 비관적 잠금 모드를 정의한다. PESSIMISTIC_READ를 사용하면 공유 잠금을 얻고 데이터가 업데이트되거나 삭제되는 것을 방지할 수 있다. PESSIMISTIC_WRITE를 사용하면 배타적 잠금을 얻어 데이터를 읽거나, 업데이트하거나, 삭제하는 것을 방지할 수 있다. ...
1. 낙관적 잠금 이해 낙관적 잠금을 사용하려면 @Version 주석이 있는 속성을 포함하는 엔터티가 필요하다. 이를 사용하는 동안 데이터를 읽는 각 트랜잭션은 버전 속성의 값을 보유한다. 트랜잭션이 업데이트를 하기 전에 버전 속성을 다시 확인한다. 값이 그 사이에 변경된 경우 OptimisticLockException이 throw됩니다. 그렇지 ...
1. 샘플 데이터 모델 예제에서 사용할 샘플 데이터 모델이다. 먼저 Employee 엔터티를 만든다. @Entity public class Employee { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private long id; private String ...