CUBA 7 新特性 (下篇)

上篇我们主要介绍了 CUBA 7 中前端的一些主要功能。这篇我们介绍一下中间件的一变化和新特性。
中间件功能
前面关于新的界面 API 的描述内容比我预期的要多许多,所以在这一节,我会尽量简单点说!
实体更改事件
实体更改事件是一个Spring 应用程序事件。在实体已经进入数据存储、已物理插入且马上要提交事务时触发。这时,可以进行一些额外的检查(例如,在确认订单之前检查库存中的产品可用性)并在其他事务可见前对数据进行一些修改(例如重新计算总数)(显然需要使用“读已提交”事务隔离级别)。在这个事件处理器中你还可以通过抛出异常来中断事务,这是中断事务的最后一个机会,在某些极端情况下可能很有用。
还有一种方法可以在事务提交后捕获实体更改事件。
按照这个文档的描述查看示例。
事务型数据管理器
在开发应用程序时,我们通常使用分离的实体 ,这种实体不受任何事务管理。但是,在有些情况下使用分离的实体并不可行,特别是在需要满足 ACID 要求时 ,这时你就需要使用事务型数据管理器。它看起来与普通的数据管理器非常相似,但在以下方面有所不同:
l 它可以嵌入现有事务(如果在事务上下文中调用它)或创建自己的事务。
l 它没有 commit 方法,但是有 save 方法,save 方法不会立即提交事务,待附加的事务提交时才提交。
这里有相关示例。
JPA生命周期回调
最后,CUBA 7 支持 JPA 生命周期回调。 对于生命周期回调我们在文档中有精细的描述,这里我就不再重复了。可以在这里找到详细的描述。
兼容性怎么样?

任何重大版本的发布都是一个需要认真对待问题,特别有这么多看起来具有破坏性的变化时! 我们设计所有这些新功能和 API,同时考虑到向后兼容性:
l CUBA 7 支持旧的界面 API,同时在底层使用新的 API 实现这些旧的 API 功能。
l 我们还为旧的数据绑定提供了适配器,这些适配器继续适用于旧的界面。
所以,好消息是,从版本 6 到 7 的迁移应该非常简单。
总结
在结束这个技术概述时,我想提一下,还有其他重要的更新,特别是在许可方面:
l Studio 已取消10个实体的限制。
l 报表、BPM(业务流程管理)、图表和地图以及全文搜索扩展现在都免费并开源。
l Studio 的商业版致力于通过可视化设计器来提升实体、界面、菜单和其他平台元素的开发体验,而在免费版中主要通过编码的方式实现这些。
l 请注意,对于6.x 及更早版本的 Platform 和 Studio ,许可条款保持不变!
最后,让我再次感谢社区成员的所有支持和反馈。 希望你们会喜欢第 7 版! 根据传统,发行说明中提供了完整的更改列表。
CUBA 7 新特性 (下篇)的更多相关文章
- CUBA 7 新特性(上篇)
三年前,我们宣布了 CUBA 框架的第二个公开的主版本.CUBA 6 是改变游戏规则的版本 - 框架的许可从私有化变成了公开的 Apache2.0.那些日子里,我们甚至猜不到这个变化会最终将框架带向何 ...
- 【ArcGIS 10.2新特性】ArcGIS Online新特性(上)
概述 7月,ArcGIS Online发布了很多更新.主要内容有:新的网站设计,增强了Web制图,数据分析,应用程序创建,以及机构管理等功能. 更新的大致内容总结如下: 地图查看器:新的分析工具.获取 ...
- Servlet3.0新特性(从注解配置到websocket编程)
Servlet3.0的出现是servlet史上最大的变革,其中的许多新特性大大的简化了web应用的开发,为广大劳苦的程序员减轻了压力,提高了web开发的效率.主要新特性有以下几个: 引入注解配置 支持 ...
- ES6相关新特性介绍
你可能已经听说过 ECMAScript 6 (简称 ES6)了.ES6 是 Javascript 的下一个版本,它有很多很棒的新特性.这些特性复杂程度各不相同,但对于简单的脚本和复杂的应用都很有用.在 ...
- ABAP 7.50 新特性 – Open SQL中的宿主表达式和其它表达式
在长期的停滞后,Open SQL的发展终于从沉睡中醒来.从ABAP 7.40开始,SAP推进了某些关键的改变,以尽可能地包含SQL92中的特性,并提供与ABAP CDS中的DDL里面的SELECT一样 ...
- Java 8新特性之lambda(八恶人-2)
Major Marquis Warren 沃伦·马奎斯少校 “Tring to get a couple of bounties in to Red Rock.”我想带几个通缉犯去红石镇 一.基本介绍 ...
- 【Java8新特性】关于Java8中的日期时间API,你需要掌握这些!!
写在前面 Java8之前的日期和时间API,存在一些问题,比如:线程安全的问题,跨年的问题等等.这些问题都在Hava8中的日期和时间API中得到了解决,而且Java8中的日期和时间API更加强大.立志 ...
- C# 9.0 新特性之只读属性和记录
阅读本文大概需要 2 分钟. 大家好,这是 C# 9.0 新特性系列的第 4 篇文章. 熟悉函数式编程的童鞋一定对"只读"这个词不陌生.为了保证代码块自身的"纯洁&quo ...
- SQL Server 2014 新特性——内存数据库
SQL Server 2014 新特性——内存数据库 目录 SQL Server 2014 新特性——内存数据库 简介: 设计目的和原因: 专业名词 In-Memory OLTP不同之处 内存优化表 ...
随机推荐
- [Openwrt 项目开发笔记]:USB挂载& U盘启动(三)
[Openwrt项目开发笔记]系列文章传送门:http://www.cnblogs.com/double-win/p/3888399.html 正文: 在上一篇中,我结合Netgear Wndr370 ...
- EasyUi TreeGrid/DataGrid getChecked BUG
问题描述 步骤一,选中左边树一个节点,然后出现相应的数据,选中进行保存.如,我选中了前4个节点,上图: 步骤二,我再选tree中第二个节点,进行相应的选中和取消选中treegrid中的节点,并保存. ...
- CentOS 7 Flannel的安装与配置
1. 安装前的准备 etcd 3.2.9 Docker 17.12.0-ce 三台机器10.100.97.236, 10.100.97.92, 10.100.97.81 etcd不同版本之间的差别还是 ...
- asp.net使用SpeechSynthesizer类生成语音文件部署到iis遇到的几个坑
首先需要引入命名空间System.Speech.Synthesis,代码如下: using (var speechSyn = new SpeechSynthesizer()) { speechSyn. ...
- 深入浅出“跨视图粒度计算”--3、EXCLUDE表达式
本文由 网易云发布. 深入嵌入“跨视图粒度计算”的前面两篇分别讲了 1.理解数据的粒度 2.INCLUDE表达式 这一篇讲一下EXCLUDE表达式的用法. EXCLUDE,中文译为“排除”,顾名思义 ...
- TOJ2470
#include <stdio.h> struct node{ int x; int y; int step; }first; int zx[4]={-1,0,1,0}; int zy[4 ...
- 838. Push Dominoes
There are N dominoes in a line, and we place each domino vertically upright. In the beginning, we si ...
- xiaocong/uiautomator
uiautomator This module is a Python wrapper of Android uiautomator testing framework. It works ...
- 正则表达式学习之grep,sed和awk
正则表达式是用于描述字符排列和匹配模式的一种语法,它主要用于字符串的模式分割.匹配.查找以及替换操作. 描述一个正则表达式需要字符类.数量限定符.位置限定符.规定一些特殊语法表示字符类,数量限定符和位 ...
- ifconfig-dropped
drop的包是因为网卡的buffer满了 查看当前网卡的buffer size情况 ethtool -g eth0 Ring parameters for eth0: Pre-set maximums ...