【问题标题】:Model superclass for JPA in Play Framework in 2.3.x Java2.3.x Java 中 Play Framework 中 JPA 的模型超类
【发布时间】:2015-03-01 08:22:05
【问题描述】:

我正在尝试在 Play Framework for Java 2.3.7 版中使用 JPA。

在 Play 1.x 之前,有一个 Model 超类,可以很容易地执行诸如“List people = Person.findAll();”之类的查询。

是否有用于 javaJpa 的 Model 超类来执行此操作?

【问题讨论】:

    标签: postgresql jpa playframework playframework-2.3


    【解决方案1】:

    Play 2 没有 play.db.jpa.Model

    但是你可以使用play.db.jpa.JPA

    找到所有的做

    JPA.em().createQuery("select p from Person p").getResultList();
    

    create 查询包含 JPQL,Person 是实体名称。

    更多详情请查看sample/computer-database-jpa

    同时检查Play Docs,Similar

    【讨论】:

    • 除非你应该把“SELECT order”放在前面,否则它是非法的JPQL
    • @NeilStockton 我不是 JPQL 专家,但这个查询对我有用 Sample
    • 在 Hibernate 上“工作”的是不是什么是 JPQL 标准(你所拥有的是 HQL)。在其他 JPA 实现上尝试它不会,所以如果可移植性甚至是一个潜在的考虑因素,最好习惯于编写有效的 JPQL
    【解决方案2】:

    我认为第 2 场比赛中没有 play.db.jpa.Model

    最接近的应该是我使用和推荐的 Ebean 和 SpringJPA,因为 Ebean 很快 removed in favor of JPA 并且 JPA 成熟并且有据可查。

    作为一个简单的例子,这些应该如下所示:

    Ebean

    查找所有使用情况

    List<Person> people = Person.find.all();
    

    人物模型

    @Entity
    public class Person extends Model
    {
      @Id
      public Long id;
      public String value;
    
      public static final Model.Finder<Long, UserPermission> find =
        new Model.Finder<Long, UserPermission>(Long.class,UserPermission.class);
    
    }
    

    SpringJPA

    查找所有使用情况

    List<Person> people = personRepository.findAll();
    

    个人资料库

    @Named
    @Singleton
    public interface PersonRepository extends CrudRepository<Agent,Long> {
    }
    

    人物模型

    @Entity
    public class Person
    {
      @Id
      public Long id;
      public String value;
    
    }
    

    【讨论】:

      【解决方案3】:

      在 Play 2 中,Model 类默认扩展 Ebean ORM,它具有save, update, find.byId, find.all 等这些通用方法。

      【讨论】:

        猜你喜欢
        • 2015-05-25
        • 2015-12-09
        • 1970-01-01
        • 2015-12-26
        • 2015-06-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-27
        相关资源
        最近更新 更多