级联

为什么不推荐使用外键

耗尽温柔 提交于 2020-01-29 02:56:54
外键的优点 一、数据一致性 由数据库自身保证数据一致性、完整性会更可靠,程序很难100%保证数据的一致性、完整性 二、ER图可靠性 有主外键的数据库设计可以增加ER图的可读性 外键的缺点 一、级联问题 阿里巴巴的开发手册中,就曾指出强制要求不允许使用外键,一切外键概念必须在应用层解决。 因为每次级联delete或update的时候,都要级联操作相关的外键表,不论有没有这个必要,由其在高并发的场景下,这会导致性能瓶颈 二、增加数据库压力 外键等于把数据的一致性事务实现,全部交给数据库服务器完成,并且有了外键,当做一些涉及外键字段的增,删,更新操作之后,需要触发相关操作去检查,而不得不消耗资源 三、死锁问题 若是高并发大流量事务场景,使用外键还可能容易造成死锁 四、开发不方便 有外键时,无论开发还是维护,需要手工维护数据时,都不太方便,要考虑级联因素 总结 一、如是单机且低并发,也不需要性能调优,再或者不能用程序保证数据的一致性,完整性,可以使用外键。 二、 如果为了高并发,分布式,使系统性能更优,以及更好维护,则一定不能使用外键 来源: CSDN 作者: 小夏陌 链接: https://blog.csdn.net/qq_22136439/article/details/103714369

hibernate, cascade

不问归期 提交于 2020-01-24 17:27:35
1,one to one, 单向, 谁加注解才能关联(dubug有时候背lazy影响 副表角度: 查:能查,主表不加注解 插入:不加级联插入有异常,只有在副表加cascade = CascadeType.ALL,所以只能说明加了oneToOne只能级联插入,   如果只是查出来再插入,cascade = CascadeType.ALL需要删掉, 或改成merge,detech 还是不能改主表属性,能插入副表,不会有异常   把他看作一个dao一个session,不同dao查出来的对象不能跨session保存 delete: 不加不级联,加了cascade = CascadeType.ALL级联, merge可 update:不加不更新主表,加了cascade = CascadeType.ALL级联,merge可 2,many to one 和上面相同 删除:cascade = CascadeType.ALL可以删得剩下副表的情况 3,one to many, many to one, 单单onetomany不知道怎么弄 都不要忘记cascade = CascadeType.ALL 只有双关联才能用, 关注在外键 insertable = false 插入了,但沒有关联 updatable = false不修改关联的,新插入一条 插入的时候双方都要set, 在以有主表的情况先

org.hibernate.PersistentObjectException: detached entity passed to persist

南楼画角 提交于 2020-01-24 02:16:31
简单地来看,将一个游离的对象要被持久化(save)时报错。 我们知道要持久化对象时候,通常Hibernate会根据ID生成策略自动生成ID值,但是这个对象ID已经有值,所有抛错。这个错误会出现在配置如下一对多@OneToMany的关联关系等出现。 // 部门拥有的车辆 @OneToMany(cascade = CascadeType.ALL, fetch = FetchType.LAZY, mappedBy = "assignedDept") @JsonIgnore private List<Vehicle> assignedVehicles; 因为级联关系是CascadeType.ALL,所以save时会保存级联的对象Role,但是Role已经存在,因此就报错了。将cascade改为CascadeType.MERGE或者CascadeType.REFRESH即可,表示级联对象在Role表存在则进行update操作,而不做save操作。 级联操作时谨慎用CascadeType.ALL 改为: @OneToMany(cascade = CascadeType.REFRESH, fetch = FetchType.LAZY, mappedBy = "assignedDept") 来源: https://www.cnblogs.com/nelson-hu/p/7485319.html

Hibernate【第三章 各类概念】

别来无恙 提交于 2020-01-22 21:31:10
一、如何支持事务 s.beginTransaction(); s.getTransaction().commit(); 二、属性延迟加载 属性的延迟加载: 当使用load的方式来获取对象的时候,只有访问了这个对象的属性,hibernate才会到数据库中进行查询。否则不会访问数据库 三、关系延迟加载 Product.hbm.xml中 <set name="users" table="user_product" lazy="true"> <key column="pid"/> <many-to-many column="uid" class="User"/> </set> 四、级联 1、没有配置级联的时候,删除分类,其对应的产品不会被删除。 但是如果配置了恰当的级联,那么删除分类的时候,其对应的产品都会被删除掉 2、4种级联 all:所有操作都执行级联操作; none:所有操作都不执行级联操作; delete:删除时执行级联操作; save-update:保存和更新时执行级联操作; 级联通常用在one-many和many-to-many上,几乎不用在many-one上。 五、一级缓存 同一个session中,获取相同对象,仅执行一次sql 六、二级缓存 sessionFactory级别 1、hibernate本身不支持二级缓存,需要EhCache提供,修改hibernate.hbm

DeepLab V3

走远了吗. 提交于 2020-01-14 12:23:05
摘要 本文首先回顾了空洞卷积在语义分割中的应用,这是一种显式调整滤波器感受野和控制网络特征响应分辨率的有效工具。为了解决多尺度分割对象的问题,我们设计了采用级联或并行多个不同膨胀系数的空洞卷积模块,以更好的捕获上下文语义信息。此外,我们扩充了在DeepLab V2中提出的ASPP模块,进一步提升了它的性能。并且我们还分享了一些训练系统方面的经验和一些实施方面的细节。 介绍 作者提到DeepLab系列面临 三大挑战 : 挑战一 :为分类任务设计的DCNN中的多次Max-Pooling和全连接层会导致空间信息的丢失。在DeepLabV1中引入了空洞卷积来增加输出的分辨率,以保留更多的空间信息。 挑战二 :图像存在多尺度问题,有大有小。一种常见的处理方法是图像金字塔,即将原图resize到不同尺度,输入到相同的网络,获得不同的feature map,然后做融合,这种方法的确可以提升准确率,然而带来的另外一个问题就是速度太慢。DeepLab v2为了解决这一问题,引入了ASPP(atrous spatial pyramid pooling)模块,即是将feature map通过并联的采用不同膨胀速率的空洞卷积层,并将输出结果融合来得到图像的分割结果。 挑战三 :分割结果不够精细的问题。这个和DeepLabV1的处理方式一样,在后处理过程使用全连接CRF精细化分割结果。 在本文中

级联选择器的excel数据源转json

一世执手 提交于 2020-01-14 03:53:17
级联选择器的excel数据源转json excel数据转json 应用 业务场景:职业,省市县等需要级联选择,根据不同保险公司、不同项目,会有不同数据源,通常是excel,所以需要将excel里数据转换成级联选择器需要的json。 excel数据转json 类似此类结构excel数据源 ctrl+c ctrl+v到 http://www.bejson.com/json/col2json/ 得到数组 [ [“100000”,“北京市”], [“100100”,“辖区”], [“100001”,“海淀区”], [“100002”,“朝阳区”], ] var arrEnd = [ ] ; var obj1 = { } ; var obj2 = { } ; var obj3 = { } ; arr . forEach ( ( item , index ) => { if ( obj1 [ item [ 0 ] ] ) { //该省份已插入,直接下一步 if ( obj2 [ item [ 2 ] ] ) { //该市已插入,直接下一步 if ( obj3 [ item [ 4 ] ] ) { //该县已插入,不操作 } else { //该县未插入 obj3 [ item [ 4 ] ] = 1 arrEnd [ arrEnd . length - 1 ] . c [ arrEnd [

flume介绍

蹲街弑〆低调 提交于 2020-01-11 03:39:13
Flume技术原理 1.Flume是什么 1.1.Flume是开源日志系统。是一个分布式、可靠和高可用的海量日志聚合的系统,支持在系统中定制各类数据发送方,用于收集数据;同时,Flume提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。 1.2.Flume是流式日志采集工具,Flume提供对数据进行简单处理并且写到各种数据接受方(可定制)的能力,Flume提供从本地文件(spooling directory source)、实时日志(taildir、exec)、REST消息、 Thrift 、Avro、Syslog、Kafka等数据源上收集数据的能力。 2.Flume能干什么 2.1. 2.2.合并数据:即是将源文件多行数据当做一条数据给Flume,如果不合并,文件中的一行数据就是一条数据。 2.3. 2.4.提供从固定目录下采集日志信息到目的地(HDFS, HBase, Kafka)能力。 2.5.提供实时采集日志信息(taildir)到目的地的能力。 2.6.Flume支持级联(多个Flume对接起来),合并数据的能力。 2.7.Flume支持按照用户定制采集数据的能力。 2.8. 3.Flume在FusionInsight中的位置 3.1.Flume是收集、聚合事件流数据的分布式框架 4.Flume架构 (1) 4.1.Flume基础架构

d3.js 使用级联过渡

主宰稳场 提交于 2019-12-26 07:46:42
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title>TEST-5</title> <script src="https://d3js.org/d3.v4.js"></script> </head> <body> <script> const body = d3.select('body') function teleport(s) { s.transition() .duration(1000) .style('width', '200px') .style('height', '1px') .transition() .duration(500) .style('left', '600px') .transition() .duration(1000) .style('left', '800px') .style('height', '80px') .style('width', '80px') } body.append('div') .style('position', 'fixed') .style('background-color', 'steelblue') .style('left', '10px') .style('width', '80px') .style('height', '80px')

级联分类器训练

浪尽此生 提交于 2019-12-26 03:32:24
http://www.opencv.org.cn/opencvdoc/2.3.2/html/doc/user_guide/ug_traincascade.html 介绍 级联分类器包括两部分:训练和检测。 检测部分在OpenCV objdetect 模块的文档中有介绍,在那文档中给出了一些级联分类器的基本介绍。这个指南是描述如何训练分类器:准备训练数据和运行训练程序。 重点注意事项 OpenCV中有两个程序可以训练级联分类器: opencv_haartraining and opencv_traincascade``。 ``opencv_traincascade 是一个新程序,使用OpenCV 2.x API 以C++ 编写。这二者主要的区别是 opencv_traincascade 支持 Haar [Viola2001] 和 LBP [Liao2007] (Local Binary Patterns) 两种特征,并易于增加其他的特征。与Haar特征相比,LBP特征是整数特征,因此训练和检测过程都会比Haar特征快几倍。LBP和Haar特征用于检测的准确率,是依赖训练过程中的训练数据的质量和训练参数。训练一个与基于Haar特征同样准确度的LBP的分类器是可能的。 opencv_traincascade and opencv_haartraining 所输出的分类器文件格式并不相同

级联分类器训练

孤街浪徒 提交于 2019-12-26 03:32:11
级联分类器训练 adaboost分类器由级联分类器构成,"级联"是指最终的分类器是由几个简单分类器级联组成。在图像检测中,被检窗口依次通过每一级分类器,这样在前面几层的检测中大部分的候选区域就被排除了,全部通过每一级分类器检测的区域即为目标区域。 分类器训练完以后,就可以应用于输入图像中的感兴趣区域的检测。检测到目标区域输出为1,否则输出为0。为了检测整副图像,在图像中移动搜索窗口,检测每一个位置来确定可能的目标。为了搜索不同大小的目标物体,在图像中检测未知大小的目标物体,扫描过程中用不同比例大小的搜索窗口对图片进行扫描。 目标检测分为三个步骤: 1、 样本的创建 2、 训练分类器 3、 利用训练好的分类器进行目标检测。 二、样本收集 训练样本分为正例样本和反例样本,其中正例样本是指待检目标样本,反例样本指其它任意图片,所有的样本图片都被归一化为同样的尺寸大小(例如,24x24)。负样本可以来自于任意的图片,但这些图片不能包含目标特征。负样本由背景描述文件来描述。 准备训练数据   训练需要一些列样本。样本分两类:负样本和正样本。负样本是指不包括物体的图像。正样本是待检测的物体的图像。负样本必须手工准备,正样本使用 opencv_createsamples 创建。 负样本   负样本可以是任意图像,但图像中不能包含待检测的物体。用于抠取负样本的图像文件名被列在一个文件中