继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

playframework数据持久化

程序猿涛涛
关注TA
已关注
手记 3
粉丝 4
获赞 62

Play的持久层框架采用的是Hibernate,使用Hibernate(通过JPA)自动地将Java对象持久化到数据库。当在任意的实体类上增加@javax.persistence.Entity注解后,Play会自动为其开启JPA实体管理器。
@Entity
public class Product {
public String name;
public Integer price;
}
注意:
Play应用开发者一开始可能经常会犯的错误是使用Hibernate的@Entity注解来取代JPA。这里请读者注意,Play是直接调用JPA的API来使用Hibernate。

  也可以直接从play.db.jpa.JPA对象中得到实体管理器,通过实体管理器可以将Model持久化到数据库或者执行HQL语句,例如:

EntityManager em = JPA.em();
em.persist(product);
em.createQuery("from Product where price > 50").getResultList();
Play为JPA的使用提供了非常好的支持,只需要继承Play提供的play.db.jpa.Model类:

@Entity
public class Product extends Model {
public String name;
public Integer price;
}
接着就可以执行Product实例中CRUD操作进行对象持久化:
Product.find("price > ?", 50).fetch();
Product product = Product.findById(2L);
product.save();
product.delete();
补充:ActiveRecord模式
ActiveRecord也属于ORM层,由Rails最早提出,遵循标准的ORM模型:表映射到记录,记录映射到对象,字段映射到对象属性。配合遵循的命名和配置惯例,能够很大程度的快速实现模型的操作,而且简洁易懂。Play也提倡使用ActiveRecord模式进行快速开发,其主要思想是:

每一个数据库表对应创建一个类,类的每一个对象实例对应于数据库中表的一行记录;通常表的每个字段在类中都有相应的Field;
ActiveRecord同时负责把自己持久化,在ActiveRecord中封装了对数据库的访问,即CURD;
ActiveRecord是一种领域模型(Domain Model),封装了部分业务逻辑。

打开App,阅读手记
11人推荐
发表评论
随时随地看视频慕课网APP

热门评论

希望提供实例代码,以便动手编写学习,谢谢!

查看全部评论