Play Framework 2 中 JPA 的模型超类。3.x Java

Model superclass for JPA in Play Framework in 2.3.x Java

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

在 Play 1.x 之前,有一个模型超类使得执行 "List persons = Person.findAll();".

这样的查询变得非常容易

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

Play 2

没有play.db.jpa.Modelclass

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

并找到所有做

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

其中创建查询包含 JPQL,Person 是实体名称。

有关详细信息,请查看 sample/computer-database-jpa

同时勾选 Play Docs,Similar

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

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

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

举个简单的例子,它们应该是这样的:

Ebean

FindAllUsage

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

FindAllUsage

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;

}