spring-data-ebean v1.3.0发布 超简单、超强大的ORM框架,OQL、SQL、ES多查询引擎,超越JPA、Hibernate、Mybatis

原创
2018/03/19 12:22
阅读数 880

超简单、超强大的ORM框架,OQL、SQL、ES多查询引擎,超越JPA、Hibernate、Mybatis.

## 支持的一些特性 ##

* 对标准Entity支持完整CRUD操作,包括常用的查询操作

* 支持通过接口中的注解生成对应的查询(orm查询、sql查询、命名orm查询、命名sql查询、dto查询)

* 支持通过接口中的方法名生成对应的查询

* 支持QueryChannel服务

* 提供基础属性的实体基类和面向领域编程基类

* 原生支持使用注解实现审计(如创建人、创建时间、修改人、最后修改时间)

* 支持自定义编写基于Ebean的查询,方便而不失灵活性

* 方便的与Spring集成

* 支持MySQL、Oracle、SQL Server、H2、PostgreSQL等数据库

## 为什么选择[Ebean ORM](https://ebean-orm.github.io)

基于JPA注解的轻量级ORM实现,支持Mybatis不支持的实体关联,但相比Hibernate/JPA具有Mybatis的查询灵活性,支持查询[partial objects](https://ebean-orm.github.io/docs/query/partialobjects)。

对于实现领域模型仓储接口的聚合根实体保存(保存聚合根实体同时保存聚合根上的关联实体、值对象)和partial objects等技术要求,Ebean都非常适用。

我选择关系型数据持久化框架的基本原则:

1. 拥抱SQL而非隐藏

2. 可以实现面向领域编程

3. 可以利用JPA注解,但不能是JPA的完整实现(这点我偏向于Ebean)

4. 足够成熟以应对企业级应用(Ebean和Hibernate同时期作品,资格老,而且持续更新以满足更高需求)

#### 框架优缺点比较

**Hibernate/JPA**

* [Compare to JPA](http://ebean-orm.github.io/architecture/compare-jpa)

* 反正比Hibernate/JPA好

**MyBatis**

* 优点

* 在XML映射文件里写SQL语句很爽

* 缺点

* 实现一个DAO、仓储要写很多文件(DAO/Repository、XXXMapper、XXXMapper.xml),方法多了比较繁琐

* 无法在一个方法里做批处理,无法级联加载

* 即时是简单的CRUD,都显得繁琐,导致存在各种弥补mybatis这一缺陷的第三方封装框架

* 无法面向对象,无法实现DDD

**EBean**

* 优点

* 所有场景都实现非常完美,代码可读性高

* 实现批处理超级简单

* ORM查询、sql查询、DTO查询都非常简单

* 缺点

* DTO查询功能较新,有待增加XML mapping对DTO的支持

 

更新内容:

  • 升级对 spring-data-commons to 2.0.5.RELEASE 和 spring boot 2.0.0 的支持
  • 配置文件使用 application.properties 或application.yml
  • 增加对DTO查询的支持
展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部