当前位置: 首页 > news >正文

Play Ebean:Play Framework 的 ORM 集成模块

文章目录

  • Play Ebean:Play Framework 的 ORM 集成模块
    • 1、 这玩意儿是干嘛的
    • 2、 版本对应关系
    • 3、 怎么用
    • 4、 适合什么场景
    • 5、 维护状态

Play Ebean:Play Framework 的 ORM 集成模块

play-ebean 在 GitHub 上拿到 108 Star 了。

playframework 团队维护的这个模块,专门干一件事——把 Ebean ORM 接到 Play Framework 里。Scala 项目用 Play 做后端,需要数据库访问层,又不想写一堆 MyBatis 风格的 XML,这个模块就是为此准备的。

1、 这玩意儿是干嘛的

给 Play Framework 加上 Ebean ORM 的支持。Ebean 是基于 JPA 注解的 Java ORM,配置简单,查询语义接近 SQL,不像 Hibernate 那么重。play-ebean 把它接到 Play 的插件体系里,配置文件加上一行就能跑。

API 风格上,Ebean 走的是 finder 路线,Model 类继承基类后直接find.byId(1L)就拿到对象,复杂查询用Ebean.find(class).where().eq("name", value).findList(),比手写 SQL 简洁,又不像 Criteria API 那样啰嗦。

2、 版本对应关系

模块版本、Play 版本、Ebean 版本三者绑死。挑错了直接起不来。

Plugin versionPlay versionEbean version
8.5.03.0.9+17.1.0
8.4.03.0.9+15.11.0
7.5.02.9.9+17.1.0
6.2.02.8.18+12.16.1
5.0.22.7.011.39.x
4.1.42.6.x11.32.x

Play 3.x 走 8.x 系列,Play 2.9 走 7.x,Play 2.8 走 6.x。低版本 Play 升级前先看这张表。

3、 怎么用

工程里加依赖:

libraryDependencies+="org.playframework"%%"play-ebean"%"8.5.0"

build.sbt 启用插件:

lazyvalroot=(project in file(".")).enablePlugins(PlayJava,PlayEbean)

conf/application.conf 配数据源和模型扫描路径:

db.default.driver = org.h2.Driver db.default.url = "jdbc:h2:mem:play" ebean.default = ["models.*"]

实体类照 JPA 风格写:

@Entity@Table(name="users")publicclassUserextendsModel{@IdpublicLongid;@ColumnpublicStringname;publicstaticFinder<Long,User>find=newFinder<>(User.class);publicstaticUserbyName(Stringname){returnfind.query().where().eq("name",name).findOne();}}

API 流转过程里,Play 注入 EbeanServer,Model 直接调用静态 finder,控制器拿到 user 后返回 JSON,链路一气呵成。

4、 适合什么场景

  • 想用 Play 做 Java/Scala 后端,又不想碰 Hibernate 全套配置的项目
  • 已经在用 Ebean,需要接到 Play 体系的工程
  • 团队偏好 JPA 注解风格但想用更轻量的 ORM
  • 老的 Play 2.7、2.8 项目升级,需要按版本号挑选匹配分支

模块本身代码不多,主要做的是配置桥接和生命周期管理,真正的活是 Ebean 在干。

5、 维护状态

playframework 组织还在持续更新,最近版本对齐到 Play 3.0.9 和 Ebean 17.1.0。仓库体积不大,issue 响应慢一些但不废弃。生产环境建议看准对应版本号再上,候选版(RC)不要碰。

官方还推荐一个 payintech 的 fork,在原版基础上加了一些企业级特性,需要审计、多租户、复杂权限场景可以一并看看。

建议看准对应版本号再上,候选版(RC)不要碰。

官方还推荐一个 payintech 的 fork,在原版基础上加了一些企业级特性,需要审计、多租户、复杂权限场景可以一并看看。

http://www.jsqmd.com/news/1146471/

相关文章:

  • 3D机器学习数据集2024选型指南:5大任务场景与16个数据集匹配矩阵
  • 2026包装印刷选型指南:一站式设计印刷服务商优劣维度解析
  • 终极raylib游戏编程指南:从零开始构建你的第一个2D/3D应用
  • 2026 待办软件综合测评:多场景办公适配度完整对比
  • Windows如何免费解决HEIC缩略图预览问题?终极简单指南
  • KLayout完整指南:如何免费掌握专业版图设计与验证工具
  • LTSC-Add-MicrosoftStore:为Windows 11 24H2 LTSC系统恢复微软商店的技术方案
  • 2026行业观察:唐山广告一站式服务模式迭代与核心竞争力解析
  • 2026 揭秘宣城泾县非遗木梳生产商口碑秘诀,选购干货速看!
  • B站视频下载器:解决大会员4K高清和充电专属视频的本地化存储难题
  • 如何用Python实现剪映自动化:第三方JianYingApi完全指南
  • 快速解锁加密压缩包:ArchivePasswordTestTool高效密码恢复工具完全指南
  • 网传玩家战魂做工差、噪音大、售后弱?深度拆解新锐游戏本的真实产品逻辑
  • 【单片机毕业设计】基于 STM32/51 单片机的多坑位智能公厕消毒监测控制系统设计与实现,带语音提醒的单片机公厕多工位智能监测设备研发(021801)
  • 如何用LinkSwift解锁九大网盘真实下载链接:终极用户指南
  • Stable Diffusion 1.5/XL 人物头像提示词:9大维度组合公式与3个实战案例
  • Linux Shell全局/局部环境变量、PATH、启动脚本与数组变量
  • SMAPI架构解析:星露谷物语模组加载框架的5个核心技术突破
  • 2026年AI黄金赛道:教育/医疗/金融大模型解决方案深度解析(收藏版)
  • 记一次华为乾崑智驾大模型6月安全报告深度排查
  • 探秘未来家居:全屋智能展厅体验记
  • PHP 5.x/7.x 本地文件包含实战:3种伪协议绕过与 Client-ip 头伪造
  • 如何快速上手openEuler/sra_test?3分钟完成编译与首次测试的完整指南
  • 经验丰富的加密软件推荐品牌 按场景选型不踩坑全指南
  • 产线时延与丢包治理:TSN确定性网络落地指南
  • Fast-GitHub:国内开发者必备的GitHub下载加速解决方案
  • PIC18F65K40与PAM8904音频驱动方案设计与优化
  • 京东抢购自动化脚本完整指南:如何通过Python脚本提升抢购成功率
  • QQ 官方机器人 Webhook 接入实战:Nginx 反向代理 + SSL 证书 2 小时上线
  • 【RT-DETR涨点改进】10 从“结构”到“数据”:为RT-DETR量身定制的“温和”数据增强方案