- JPA란 무엇인가요? JDBC와 어떻게 다른가요?
php 편집기 Strawberry는 지속성 프레임워크에 대한 숙달도를 테스트하기 위해 고안된 몇 가지 Java JPA 인터뷰 질문을 선택했습니다. 이러한 질문은 JPA의 기본 지식, 고급 기능 및 실제 애플리케이션 시나리오를 다루며, 이는 인터뷰를 더 잘 준비하고 기술적 능력을 입증하는 데 도움이 될 수 있습니다. 초보자와 숙련된 개발자 모두 이러한 질문을 통해 JPA에 대해 자세히 알아보고 지속성 프레임워크 기술을 향상시킬 수 있습니다.
- JPA에서 엔터티란 무엇인가요?
엔티티는 JPA에서 영구 객체를 나타내는 데 사용되는 클래스입니다. @Entity 주석을 사용하여 정의할 수 있으며 직렬화 가능 인터페이스를 구현해야 합니다. 엔터티 클래스에는 일반적으로 필드, 속성 및 메서드가 포함되어 있으며 이러한 필드와 속성은 데이터베이스의 열과 테이블에 해당하며 메서드는 이러한 필드와 속성을 작동하는 데 사용됩니다.
- JPA에는 어떤 지속성 전략이 있나요? 각각의 장점과 단점을 설명하세요.
JPA는 다음을 포함한 다양한 지속성 전략을 제공합니다.
-
관리됨: 엔터티는 EntityManager를 통해 관리되며 라이프사이클은 JPA에 의해 제어됩니다. 장점은 엔터티 관리를 단순화한다는 점이지만 단점은 메모리 오버헤드를 증가시킨다는 것입니다.
-
분리됨: 엔터티는 EntityManager와 분리되어 있으며 JPA의 관리를 받지 않습니다. 장점은 메모리 오버헤드를 줄이는 것이지만 단점은 엔터티의 수명 주기를 수동으로 관리해야 한다는 것입니다.
-
일시적: 엔터티는 지속성 작업에 참여하지 않습니다. 장점은 데이터베이스에 유지되지 않는다는 것입니다. 단점은 JPA에서 관리하고 쿼리할 수 없다는 것입니다.
-
삭제됨(제거됨): 엔터티는 삭제 표시되고 트랜잭션이 제출된 후 데이터베이스에서 삭제됩니다. 장점은 데이터의 일관성을 보장하는 것이지만 단점은 엔터티의 수명 주기입니다. 수동으로 관리해야 합니다.
- JPA에서 쿼리 언어(JPQL)를 사용하여 데이터를 쿼리하는 방법은 무엇입니까?
JPQL(Java Persistence Query Language)은 JPA에서 데이터를 쿼리하는 데 사용되는 언어입니다. SQL과 유사하지만 구문이 더 간단하고 Java 언어에 더 가깝습니다. JPQL 쿼리는 두 가지 범주로 나눌 수 있습니다.
-
Select 쿼리: 특정 조건을 충족하는 데이터를 검색하는 데 사용되며 구문은 다음과 같습니다. SELECT [select_clause] FROM [entity_name] [where_clause]
-
업데이트 쿼리: 데이터를 업데이트하거나 삭제하는 데 사용되는 구문은 다음과 같습니다: UPDATE [엔티티_이름] SET [할당_절] [where_clause] 또는 DELETE FROM [엔티티_이름] [where_clause]
- JPA에서 관계 매핑을 구현하는 방법은 무엇입니까?
JPA는 다음을 포함한 다양한 관계 매핑 유형을 지원합니다.
-
일대일(OneToOne): 엔터티는 @OneToOne 주석을 통해 정의할 수 있는 다른 엔터티와 일대일 관계를 설정할 수 있습니다.
-
일대다(OneToMany): 엔터티는 @OneToMany 주석을 통해 정의할 수 있는 여러 엔터티와 일대다 관계를 설정할 수 있습니다.
-
ManyToOne: 여러 엔터티가 하나의 엔터티와 다대일 관계를 설정할 수 있으며 이는 @ManyToOne 주석을 통해 정의할 수 있습니다.
-
ManyToMany: 여러 엔터티는 @ManyToMany 주석을 통해 정의할 수 있는 여러 엔터티와 다대다 관계를 설정할 수 있습니다.
- JPA에서 성능을 최적화하는 방법은 무엇입니까?
JPA는 다음을 포함한 다양한 성능 최적화 기술을 제공합니다.
-
캐싱 사용: JPA는 엔터티와 쿼리 결과를 캐싱 하여 성능을 향상시킬 수 있습니다.
-
인덱스 사용: 데이터베이스 테이블에 인덱스를 생성하여 쿼리 성능을 향상시킬 수 있습니다.
-
일괄 처리 사용: JPA는 일괄 처리 작업을 지원하므로 일괄 데이터 업데이트 또는 삭제 성능을 향상시킬 수 있습니다.
-
비동기 쿼리 사용: JPA는 기본 스레드를 차단하지 않고 백그라운드에서 쿼리를 실행할 수 있는 비동기 쿼리를 지원합니다.
위 내용은 선택된 Java JPA 인터뷰 질문: 지속성 프레임워크에 대한 숙달도 테스트의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!