首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Rafy 框架 - 实体支持只更新部分变更字段

Rafy 快一两年没有大更新了。并不是这个框架没人维护了。相反,主要是因为自己项目、以及公司在使用项目,都已经比较稳定了,也没有新功能添加。...但是最近因为外面使用了 Rafy 几个公司,找到我,提出了一些明确需求,期望我做一些相应升级。所以可能最近几个月,会陆续更新 Rafy 框架。...最近升级后,可能截止到明年,会陆续支持 NET5-6 上一些功能。 今天这篇博客,主要是记录了一个客户提出了多次需求:实体更新时,只更新改动字段。...Rafy 框架会管理好领域框架状态变更。事实上,这几年确实没有升级,而开发者也用得很好,很少有人关注。...但是这次客户提出意见,由于他们实体属性实在太多了,查看日志更新语句时,较难定位具体已经修改属性。再加之,Rafy 接下来会添加一个只查询部分实体属性功能。所以就一并完成了。

1.2K10
您找到你想要的搜索结果了吗?
是的
没有找到

Rafy 领域实体框架设计 - 重构 ORM Sql 生成

前言 Rafy 领域实体框架作为一个使用领域驱动设计作为指导思想开发框架,必然要处理领域实体数据库表之间映射,即包含了 ORM 功能。...而这些场景如果还让开发人员自己去编写复杂 Sql 语句,不但框架易用性下降,而且由于写了过多 Sql 语句,还会让开发人员面向领域实体来开发思想减弱。...旧代码讲解 最初采用 Lite ORM 是一个轻量级 ORM 框架,采用在实体对象上标记特性(Attribute)来声明实体元数据,并使用链式接口来作为查询接口以方便开发人员使用。...EntityQuery 层类型实现了 IQuery 对应接口,并使用领域实体相关 API 来实现从实体到表、实体属性到列转换。...重构同时,我们为能想到场景都编写了测试用例: 目前,框架版本也升级到了 2.23.2155。 有兴趣同学,了解、下载最新框架,请参考:《Rafy 领域实体框架发布!》。

2K70

Linq2Sql数据实体外部更新时“不能添加其键已在使用实体解决办法

Linq to Sql,如果我们想在DataContext外部修改一个实体值,然后把引用传入到DataContext,再利用Attach附加后更新,代码如下: public static void...    {         db.myData.Attach(_pDate, db.myData.Single(c => c.ID == _pDate.ID));//将会出异常:“不能添加其键已在使用实体...myData _pDate = new myData() { ID = 1, IP = "127.0.0.1" }; UpdateMyTable(_pData); 运行时,会抛出异常:不能添加其键已在使用实体...原因我就不分析了,个人理解大致意思就是外部对象跟DataContext上下文没关联,而Attach又不成功,所以当然也就更新不了....这种方法当然是可行,但是有点笨,这种不应该由人来干傻活儿最好由电脑来完成(见下面的方法) 2.利用反射自动复制属性 先写一个方法,利用反射获取属性信息实现自动copy属性值 public static

1.8K50

【Jetpack】ORM 数据库访问框架 Room 简介 ( 对象关系映射 ORM 概念简介 | Room 框架组成部分 - 实体数据库访问对象、数据库持有者 | Room 框架使用步骤 )

实体类 , 对应数据库一张表结构 ; @Dao 注解 : 用于修饰 数据库访问对象 类 , 其中定义了 数据库 增删改查 函数 ; @Database 注解 : 修饰 数据库持有者 , 数据库持有者...; 最后 , 通过 Dao ( Data Access Objects ) 数据库访问对象 访问 数据库每个表对应 Entity 实体类对象 ; 三、Room 框架使用步骤 ---- Room 框架使用步骤...Entity 注解:用于标记实体类,指定实体类对应数据库名称和字段信息等。 Dao 数据库访问对象:用于定义访问数据库方法,例如查询、插入和删除等操作。...; Dao 数据库访问对象实现类 , 用于执行 SQL 查询和操作 ; 实体类 Entity 映射器 , 用于将数据库数据映射到实体 ; androidx.room:room-ktx 依赖库..., 提供了 Kotlin 扩展功能 , 如果使用是 Kotlin 语言 , 则必须导入该依赖库 ; 2、创建 Entity 实体类 创建 Entity 实体类 , 该实体类对应着数据库一张表 ,

1.6K20

RavenDB建模--常见建模方案

实体模型可以看出,Child是和Parent绑定在一起,因此Parent可以放在Child文档。...嵌入文档 文档模型和实体关系模型是不一样,一般来说在实体关系模型每个实体都有一个对应表,但是在文档模型则不是这样,我们一般会像下面代码这样将所有紧密相关信息存储在一个地方。...说我们有三种方法: 在 Child 文档添加一个数组,数组存储祖父母辈文档 ID; 在祖父母辈文档添加一个数组,数组存储孙子文档ID; 两者相互存储。 那么到底哪种方法更好呢?...但有时,允许对文档进行并发更新是有原因,例如,如果文档属性对应用程序有用。...这样操作需要被记录下来,但它实际上不会以任何方式影响系统行为,可以在任何时间点添加或删除订单跟踪,包括在订单并发更新期间。

49710

浅谈JPA优缺点_sql优点

总的来说,JPA包括以下3方面的技术: ORM映射元数据,JPA支持XML和JDK 5.0注解两种元数据形式,元数据描述对象和表之间映射关系,框架据此将实体对象持久化到数据库; JPAAPI,...用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐JDBC和SQL代码解脱出来。...Removed:删除对象,有id值,尚且和Persistence Context有关联,但是已经准备好从数据库删除 Managed状态下数据保存,更新以及删除数据下Removed状态,数据都不会立即更新数据库...Datached状态,可以调用em.merge()方法,这个方法会根据实体id来更新数据库数据,这时实体类变成了Managed(托管)状态。 三.为什么要使用JPA?...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除

1.5K20

(二)JPA 连接工厂、主键生成策略、DDL自动更新

3、DDL自动更新 在实际开发之中你是否会出现这样一种比较 尴尬 问题,在进行开发时候有人修改数据表,而后当前实体类结构和数据表结构统一,但是在JPA设计时候,充分考虑到了这种数据表修改问题...在每次业务发生改变时,也是先进行表结构修改,而后再进行程序变更,这样数据库维护是非常繁琐,考虑到数据库更新以及 数据库移植 方面的设计,在 Hibernate 之中提供了 DDL 自动创建以及表更新策略...DDL更新策略 3.1、使用 去到JPA配置文件,修改DDL更新策略、 3.1.1、create 每次加载时,根据实体类生成表,如果表存在于数据库,会先删除 <!...存在:如:实体类某个字段,在数据表不存在,这个时候会添加。但是,删除实体某个字段,数据库对应字段并不会删除。...,在执行时,创建数据库对应字段。

23410

Rafy(原OEA)领域实体框架 2.22.2067 发布!

包含“界面自动生成”等其它组件。 安装新发布包:《使用 NuGet 下载最新 Rafy 框架及文档》。...同时,这些属性 API 直接公布,更方便开发人员编写面向自己应用框架。 仓库基类则实现了组合实体添加、删除、修改,并提供了大量默认查询。...相对于传统三层应用程序,在实体添加、删除一个字段,开发人员不再需要修改应用程序数据库、DAL、BLL代码,而由框架自动同步,大大提高了开发效率。 同时,生成数据库满足第三泛式要求。 ?...图2 自动生成数据库 •    多数据库支持 Rafy 领域实体框架支持把同一份实体代码映射到多种数据库。...(面向对象映射解决是一般性实体关系到数据库映射,包含:一对多、一对一、多对多、继承。而领域实体映射,则专注于领域驱动设计继承关系、聚合关系、引用关系。

1.9K100

什么是JPA_论文题目不能用浅谈吗

内容 JPA通过JDK 5.0注解或XML描述对象-关系表映射关系,并将运行期实体对象持久化到数据库。...JPA提供技术: ORM映射元数据:JPA支持XML和JDK 5.0注解两种元数据形式,元数据描述对象和表之间映射关系,框架据此将实体对象持久化到数据库; JPA API:定义规范,以操作实体对象...包括: persist, 将新创建或已删除实体转变为Managed状态,数据存入数据库。...remove,删除受控实体 merge,将游离实体转变为Managed状态,数据存入数据库。 如果使用了事务管理,则事务commit/rollback也会改变实体状态。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除

1.5K20

jdbc java_Springdata

为4用户此处全查没有,也代表着删除操作成功 4.用户修改 修改时候需要全部实体数据哦,因为jpasave()是全部修改,前端少传一个字段,数据库更新可能就变成null了,特别注意。...如果传值,数据库会被清成null,切记切记, lastUpdatedBy和lastUpdatedDate不需要管,传传值都会自动更新。...注意点: @Version注解加上后开启乐观锁,更新必须加上objectVersion字段,且值一定要和数据库版本号一致,这样才会触发更新操作。...@Version注解加上后,更新操作一定要带上注解修饰字段,且要与数据库值一致。 2....本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除

99610

数据库设计革命:逻辑模型演变与面向对象突破

,属于信息世界模型,用于数据库设计。...分类: 查询 更新 更新操作又包括插入、删除和修改。在数据模型,要明确定义操作各项属性,如操作符、操作规则以及实现操作语言等。...这使得对底层节点访问效率变低,并且难以进行反向查询。 不易进行更新操作 更新操作包括插入、修改和删除等操作。对某一个树节点进行这种更新操作时,都有可能导致整棵根树大面积变动。...对大数据集来说这可是一个沉重负担。 安全性不好 这主要体现在,当删除一个节点时,则它子节点和孙子节点都将被删除。所以,必须慎用删除操作。...面向对象模型作为数据库设计重要部分,其主要目标是更好地理解和模拟现实世界实体实体联系。近年来,面向对象模型已经取得了一系列进展。

11510

.NET ORM “SOD蜜”--零基础入门篇

PDF.NET SOD框架不仅仅是一个ORM,但是它ORM功能是独具特色,我在博客已经多次介绍,但都是原理性,可能不少初学朋友还是觉得复杂,其实,SODORM是很简单。...注意:最新版本SOD框架,如果使用是SqlServer,并且连接字符串指定了数据库名字但实际上没有这个数据库框架可以自动创建数据库,此功能需要SODCode First功能支持,请参考下面“1.5...可以看到,SOD实体类还是比较简单,它没有使用特性来申明数据库信息,这意味着你可以在运行时修改实体类影射主键,自增字段,表名称等数据库元数据,并且不需要反射,这些特性构成了SOD框架简单而强大基础...二、ORM之增,删,改 SOD框架ORM功能跟通常ORM框架不同,SOD框架实体类上并没有数据查询和持久化方法,所以SOD实体类是“非常纯粹实体类,你可以把它看作是一个数据容器,或者用来当作...,比如对于分表分库查询,数据批量更新插入修改,数据库直接支持等这些“企业级”数据开发需求支持。

1.1K70

Rafy 框架 - 幽灵插件(假删除

Rafy 框架又添新成员:幽灵插件。本文将解释该插件场景、使用方法、原理。 场景 在开发各类数据库应用系统时,往往需要在删除数据时不是真正地删除数据,而只是把数据标识为‘已删除’状态。...这些数据在业务逻辑上是已经完全删除、不可用数据,但是不能在数据库真正把它们删除,而是需要永久保留这些历史数据。即开发人员常说‘假删除’功能。 这种需求往往是系统级。...开启该功能实体 IsPhantom 属性会自动映射到数据库。 在保存实体时,如果要删除一个聚合实体,则这个聚合所有实体都将会被标记为‘幽灵’状态。...使用批量导入数据插件进行数据批量导入时,批量删除实体同样都会被标记为‘幽灵’状态。 运行程序后,数据库字段,已经自动添加上 IsPhantom 字段了: ?...在 Rafy 框架基础上,以插件形式对 Rafy 框架实体数据层进行了扩展。

1.2K80

jdbc java_jpa使用

全称Java Persistence API,可以通过注解或者XML描述【对象-关系表】之间映射关系,并将实体对象持久化到数据库。...为我们提供了: 1)ORM映射元数据:JPA支持XML和注解两种元数据形式,元数据描述对象和表之间映射关系,框架据此将实体对象持久化到数据库; 如:@Entity、@Table、@Column、...2)JPA API:用来操作实体对象,执行CRUD操作,框架在后台替我们完成所有的事情,开发者从繁琐JDBC和SQL代码解脱出来。...spirng data jpa是spring提供一套简化JPA开发框架,按照约定好【方法命名规则】写dao层接口,就可以在写接口实现情况下,实现对数据库访问和操作。...本站仅提供信息存储空间服务,拥有所有权,承担相关法律责任。如发现本站有涉嫌侵权/违法违规内容, 请发送邮件至 举报,一经查实,本站将立刻删除

44210

Entity Framework快速入门

实体框架(Entity Framework)简介 实体框架Entity Framework 是 ADO.NET 一组支持开发面向数据软件应用程序技术。是微软一个ORM框架。...实体框架 使用这些基于 XML 模型和映射文件将对概念模型实体和关系创建、读取、更新删除操作转换为数据源等效操作。EDM 甚至支持将概念模型实体映射到数据源存储过程。...如下图所示EDMX定义: EF操作数据库网关 ObjectContext封装 .NET Framework 和数据库之间连接。此类用作“创建”、“读取”、“更新”和“删除”操作网关。...ObjectContext 类为主类,用于与作为对象(这些对象为 EDM 定义实体类型实例)数据进行交互。...它封装了EF 到数据库连接,封装了表对应实体集合,所以我们所有的操作都应该是针对于ObjectContext下实体集合,修改实体集合后,通过调用ObjectContextSaveChange方法将对实体集合操作映射回数据库

45520

SpringDataJPA 系列之 JPA 简介

对象和关系数据是业务实体两种表现形式,业务实体在内存中表现为对象,在数据库中表现为关系数据。内存对象之间存在关联和继承关系,而在数据库,关系数据无法直接表达多对多关联和继承关系。...,并将运行期实体对象持久化到数据库。...通过输出日志可以发现,JPA 会先将与实体类同名删除,然后依据实体类创建一个表,接着将数据插入新创建。这是怎么回事,那不是数据库永远只有一条数据?...时创建,退出是删除表结构;  ♞ update: 加载 hibernate 自动更新数据库结构。...:指定主键生成策略 @Column 指定实体类属性和数据库表之间对应关系,指定默认与成员变量名一致 name:指定数据库列名称unique:是否唯一 nullable:是否可以为空 inserttable

4.3K20
领券