2014-03-12 3 views
2

저는 Java에 비교적 익숙하지 만 데이터베이스에 대한 경험이 상당히 있습니다. 나는 웹 서비스를 위해 자바에서 데이터베이스에 접근하는 다양한 방법으로 지난 주를 읽었으며 이것에 대한 몇 가지 Netbeans 튜토리얼을 살펴 보았다.JPA 엔티티 대 간단한 db 쿼리를 사용하는 EntityManager

데이터베이스에서 최소한의 데이터를 쿼리하고 검색하는 간단한 웹 서비스를 만들어야합니다. 고유 한 키를 기반으로 단일 값을 조회하여 반환하고 단일 레코드를 자식 테이블에 삽입해야합니다. 몇 가지 간단한 쿼리를 통해 이것을 수행할지 또는 JPA 엔티티를 사용할지를 결정하려고합니다.

다른 언어에서는 DB 연결을 만들고 데이터를 직접 마사지하는 코드를 작성했지만 Java에서 엔티티를 사용하여 다른 테이블을 나타내고 "무거운 "JPA 사용. 그러나 이것은 웹 서비스에 대한 몇 가지 간단한 쿼리에 대한 많은 오버 헤드처럼 보입니다. 누군가가 JPA와 엔티티를 사용하는 것이 오버 헤드가 단순한 SQL 문으로 EntityManager를 사용하는 대신 내 데이터를 가져 오도록하는 것에 대해 알 수 있다면 궁금합니다. 하나를 사용하는 것과 다른 것을 사용하는 데 어떤 이점이 있습니까? 과거에 개발 플랫폼에서 추가 개체를 만들었을 때 일반적으로 복잡성과 성능 저하가 추가되었습니다.

미리 감사드립니다.

답변

0

JPA와 SQL 쿼리를 사용하는 EntityManager를 비교할 때 오버 헤드가별로 중요하지 않다고 생각합니다.

실제로 SQL 쿼리를 실행하기 위해 EntityManager를 사용하는 데 더 많은 오버 헤드가 추가됩니다. JPA의 도메인에서 이러한 쿼리는 "네이티브 쿼리"라고 명명됩니다.

JPA와 쿼리 접근법 중 하나의 장점은 ORM입니다. ORM을 사용하면 어떤 종류의 쿼리도 작성하지 않고 큰 삽입 문에 명명 된 매개 변수를 전달하고 resultSet에서 자동으로 개체를 만들 수 있으므로 더 이상 걱정할 필요가 없습니다. ResultSet을 순환시키고 컬럼을 추출하여 빈을 작성하십시오.

실제로 쿼리를 실행하려면 반환 된 객체를 관리하기 위해 동일한 Java Bean을 만들어야하기 때문에 별다른 의미가없는 주석을 추가해야합니다.

만들려는 프로젝트의 종류에 따라 앱을 구성하는 데 조금 더 많은 시간을 투자 할 수 있지만 대신 em.persist(entity)으로 전화하면 쉽게 사용할 수 있습니다.

JPA에서 POJO 기반의 객체 관계형 매핑을보다 쉽고 비 침입적인 지속성 계층으로 만드는 솔루션으로 생각하십시오.

결국 JPA 모델은 간단하고 우아하고 강력하며 유연하며 데이터베이스 모델을 구성하려는 경우 페인트 할 수 있지만 사용자의 경우는 아닙니다.

+0

Koitoer. 귀하의 의견을 보내 주셔서 감사합니다. 정말 감사. 나는 JPA의 길을 계속 따라갈 것이고 어떤 일이 일어날지를 볼 것입니다. 다시 감사합니다. – Trebor

관련 문제