【发布时间】: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
我正在尝试在 Play Framework for Java 2.3.7 版中使用 JPA。
在 Play 1.x 之前,有一个 Model 超类,可以很容易地执行诸如“List people = Person.findAll();”之类的查询。
是否有用于 javaJpa 的 Model 超类来执行此操作?
【问题讨论】:
标签: postgresql jpa playframework playframework-2.3
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。
【讨论】:
我认为第 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;
}
【讨论】:
在 Play 2 中,Model 类默认扩展 Ebean ORM,它具有save, update, find.byId, find.all 等这些通用方法。
【讨论】: