Java 从JPA读取数据的方法

Java 从JPA读取数据的方法,java,jpa,eclipselink,entitymanager,Java,Jpa,Eclipselink,Entitymanager,我阅读了文档,我发现要读取jpa数据,我需要使用以下代码。 这是通过sql从JPA表读取数据的唯一方法 factory = Persistence.createEntityManagerFactory("abc"); EntityManager entityManager = factory.createEntityManager(); Query query = entityManager.createQuery("SELECT p FROM " + className + " p");

我阅读了文档,我发现要读取jpa数据,我需要使用以下代码。 这是通过sql从JPA表读取数据的唯一方法

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

有几种使用JPA读取数据的方法。您提供的示例正在使用。此外,您还可以:

  • 通过以下方式执行本机SQL查询:

  • 使用

  • 通过主键检索单个实体,使用:


  • 谢谢你的回答!我看到第一个选项与我的帖子类似,关于第三个选项,假设我需要提供通用代码来处理任何类型的类并从他的成员那里获取数据,我可以使用它吗?如果可以,示例将非常有用。第一个选项使用本机SQL,而您帖子中的示例使用JPQL。JPQL与SQL非常相似,但不同(请参阅我提供的链接)
    em.find
    只能用于根据数据库中的主键查找单个对象。假设
    MyObject
    是一个实体,并且
    myObjectId
    是它的主键,那么除了我的答案中显示的一行代码之外,您不需要任何其他代码。
    Query q = entityManager.createNativeQuery("SELECT * FROM MY_TABLE");
    
    MyObject myObject = entityManager.find(MyObject.class, myObectId);