2013-06-01 2 views
1

설명서를 읽었으며 jpa 데이터를 읽으려는 경우 다음 코드를 사용해야합니다. 이것은 SQL을 통해 JPA 테이블에서 데이터를 읽는 유일한 방법입니까?JPA에서 데이터 읽기 방법

factory = Persistence.createEntityManagerFactory("abc"); 
EntityManager entityManager = factory.createEntityManager(); 
Query query = entityManager.createQuery("SELECT p FROM " + className + " p"); 

답변

2

는 JPA를 사용하여 데이터를 읽을 수있는 몇 가지 방법이 있습니다. 입력하신 예는 JPQL입니다. 또한, 당신은 할 수 있습니다

:

Query q = entityManager.createNativeQuery("SELECT * FROM MY_TABLE"); 
  • EntityManager#find(...)를 사용하여 기본 키의에 의해 Criteria API

  • 가 하나의 개체를 검색 사용

    1. EntityManager#createNativeQuery(String nativeSql)를 통해 네이티브 SQL 쿼리 실행

      MyObject myObject = entityManager.find(MyObject.class, myObectId); 
      
  • +0

    답변을 주셔서 감사합니다! 첫 번째 옵션은 내 게시물에있는 것처럼 보입니다. 세 번째 옵션에 대해서는 모든 유형의 클래스를 처리 할 수있는 일반 코드를 제공하고 멤버로부터 데이터를 가져와야한다고 가정합니다. 그렇다면 예제가 도움이 될 것입니다. –

    +0

    첫 번째 옵션은 게시물의 예가 JPQL을 사용하는 동안 원시 SQL을 사용합니다. JPQL은 SQL과 매우 유사하지만 동일한 것은 아닙니다 (필자가 제공 한 링크 참조). 'em.find'는 데이터베이스의 기본 키를 기반으로 _single_ 개체를 찾는 데에만 사용해야합니다. MyObject가 엔티티이고 myObjectId가 기본 키라고 가정하면, 내 대답에 표시된 한 줄 이외의 추가 코드는 필요하지 않습니다. – DannyMo