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

Rafy 领域实体框架 - 树型实体功能(自关联表)

在 Rafy 领域实体框架中,对自关联的实体结构做了特殊的处理,下面对这一功能进行讲解。 场景 在开发数据库应用程序时,往往会遇到自关联表的场景。...在开发这类程序时,往往是设计一张表,表中的一个可空的外键直接引用这张表本身。对应的实体如下图: ?...而针对这样的场景,许多ORM框架都不做默认的处理,开发者往往每次都要做重复的工作:建立类似结构的表,编写关系处理代码,编写查询代码……而这种场景经常会出现,所以 Rafy 实体框架中,默认就支持了树型实体的一系列功能...功能及使用说明 在 Rafy 中的树型实体功能,只需开发者使用一行代码为指定的实体打开这个功能,框架会自动完成以下工作: 自动添加实体的自引用关系。自动生成数据库自关联表。...自动生成数据库自关联表 运行程序后,该实体对应的表将会自动添加两个字段:TreeIndex、TreePId,如下图: ?

1.6K80
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Resultful Url 设计原则

    query] [“#” fragment] 规则 规则1:URI中不应包含尾随的斜杠(/):即,最后一位 不应该是 “/” 许多 Web 组件和框架将平等对待以下两个 URI: http://api.canvas.com.../shapes/ http://api.canvas.com/shapes 但不是所有框架都支持,可能有些会返回301 错误 规则2:正斜杠分隔符(/)必须用于指示层次关系 在 URI 的路径部分的正斜杠...规则 6:文件扩展名不应包含在 URI 中 在 Web 上,字符(.)通常用于分隔 URI 的文件名和扩展名。 一个 REST API 不应在 URI 中包含人造的文件扩展名,来表示消息实体的格式。...相反,他们应该通过 header 头中 Content-Type 属性的媒体类型来确定如何处理实体的内容。...规则 7:端点名称是单数还是复数? 复数 特殊说明: 解决问题的光鲜,藏着磕Bug的痛苦。 万物皆入轮回,谁也躲不掉!

    37110

    .NETORM框架设计(利用抽象、多态实现无反射的绿色环保ORM框架)

    在后面的文章中我将陆续写下我在建设基础框架中的一些实践检验,里面可能包括对UI层的封装、基础控件的封装等等。我就废话少扯了,进入主题。 这篇文章的重点是无反射的ORM框架,为什么会有这样的想法?...下面我们来分析一下通常ORM框架为什么需要用反射,反射的目的是什么。[王清培版权所有,转载请给出署名] ORM中反射的目的是什么? 当然我们这里讨论的是最普通的问题也是必须的问题。...目的之一:为了表达实体与表的对应关系 ORM是实体与表的一种映射关系,逐渐被发展为一种复杂的技术实现模型。 在传统的分层架构中,在实体的定义上都会使用一个特性来标记该实体所表示的表名称是什么。...public abstract class BaseEntityObject : DictionaryBase { /// /// 实体对象对应数据库中的表名...string> _primarydictionary = new Dictionary(); /// /// 用于实体子类设置当前子类对应数据库中的表名

    77020

    REST API URI 设计的七准则

    许多 Web 组件和框架将平等对待以下两个 URI: http://api.canvas.com/shapes/ http://api.canvas.com/shapes 然而,URI 中的每个字符都会被计入作为资源的唯一标识...规则#6:文件扩展名不应包含在 URI 中 在 Web 上,字符(.)通常用于分隔 URI 的文件名和扩展名。 一个 REST API 不应在 URI 中包含人造的文件扩展名,来表示消息实体的格式。...相反,他们应该通过 header 头中 Content-Type 属性的媒体类型来确定如何处理实体的内容。...规则#7:端点名称是单数还是复数? 这里采用保持简单的原则。虽然你的语法常识会告诉你使用复数来描述资源的单个实例是错误的,但实际的答案是保持 URI 格式一致并且始终使用复数形式。...不必处理奇怪的复数(person/people, goose/geese),这使 API 消费者的生活更美好,也使 API 提供商更容易实现(因为大多数现代框架将在一个通用的 controller 中处理

    1.4K40

    深入浅出MySQL:从零开始掌握建表规约

    对于初学者来说,了解并掌握 MySQL 的基本建表规约是至关重要的,它不仅能够帮助你建立高效、可靠的数据库结构,还能为你未来的数据管理工作打下坚实的基础。 一、为什么需要建表规约?...在开始详细介绍 MySQL 的建表规约之前,我们需要先了解为什么需要遵循这些规约。以下是几个关键原因: 统一规范:有助于团队协作,确保代码和数据库结构的一致性和可读性。...表名和字段名规范 【强制】 表名、字段名必须使用小写字母或数字,禁止出现数字开头,禁止两个下划线中间只出现数字。...表名不使用复数名词 【强制】 表名不使用复数名词。 说明:表名应该仅仅表示表里面的实体内容,不应该表示实体数量,对应于 DO 类名也是单数形式,符合表达习惯。 4....表名和字段名均使用小写字母,没有出现大写字母或不规范的命名。 表名使用单数形式,未使用复数。 主键索引使用 id,并且 id 字段类型为 unsigned bigint,自动增长。

    9310

    Hibernate学习笔记1

    Hibernate学习笔记1 1.Hibernate框架介绍 1.1.什么是hibernate 1.2.什么是orm 1.3.为什么使用hibernate框架 2.Hiberate框架学习目标 3.Hibernate...为什么使用hibernate框架 Hibernate对JDBC访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码 Hibernate是一个基于jdbc的主流持久化框架,是一个优秀的orm实现...创建映射文件 映射配置文件主要是用于描述实体类与数据表之间的映射关系。 位置:要与实体类在同一个包下....映射文件配置 映射配置文件它的名称是类名.hbm.xml,它一般放置在实体类所在的包下。 这个配置文件的主要作用是建立表与类的映射关系。...2.关于标签配置 name属性:类的全名称 table 表的名称,可以省略,这时表的名称就与类名一致 catalog属性:数据库名称 可以省略.如果省略,参考核心配置文件中url路径中的库名称

    1.4K60

    阿里Java编码手册实战详解-命名规范篇

    【强制】POJO 类中布尔类型变量都不要加 is 前缀,否则部分框架解析会引起序列化错误。...说明:在本文 MySQL 规约中的建表约定第一条,表达是与否的值采用 is_xxx 的命名方式,所以,需要在 设置从 is_xxx 到 xxx 的映射关系。...反例:定义为基本数据类型 Boolean isDeleted 的属性,它的方法也是 isDeleted(),RPC 框架在反向解 析的时候,“误以为”对应的属性名称是 deleted,导致属性获取不到...【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使 用单数形式,但是类名如果有复数含义,类名可以使用复数形式。...B) 领域模型命名规约 1) 数据对象:xxxDO,xxx 即为数据表名。 2) 数据传输对象:xxxDTO,xxx 为业务领域相关的名称。

    63841

    阿里Java编码手册实战详解-命名规范篇

    【强制】POJO 类中布尔类型变量都不要加 is 前缀,否则部分框架解析会引起序列化错误。...说明:在本文 MySQL 规约中的建表约定第一条,表达是与否的值采用 is_xxx 的命名方式,所以,需要在 设置从 is_xxx 到 xxx 的映射关系。...反例:定义为基本数据类型 Boolean isDeleted 的属性,它的方法也是 isDeleted(),RPC 框架在反向解 析的时候,“误以为”对应的属性名称是 deleted,导致属性获取不到...【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使 用单数形式,但是类名如果有复数含义,类名可以使用复数形式。...B) 领域模型命名规约 1) 数据对象:xxxDO,xxx 即为数据表名。 2) 数据传输对象:xxxDTO,xxx 为业务领域相关的名称。

    1.1K00

    Hibernate注解之基本注解的注解使用

    ,其中有一个name属性指定当前实体类映射的表的名称 name: 可选属性 ,指定对应表的名称,如果没有指定name属性,那么创建表的名称和类名一样 @Table : 在实体类的上方使用,和Entity...配合使用,指定实体类对应的数据库中的表的信息 name :可选,指定表的名称,默认的是和类名一样,只有在不一致的情况下才会指定表名 catalog : 可选,表示Catalog名称,默认为 Catalog...@Transient - 可选,表示该属性并非一个到数据库表的字段的映射,ORM框架将忽略该属性,如果一个属性并非数据库表的字段映射,就务必将其标示为@Transient。...-- 直接指定这个Teacher实体类的全类名即可,即是完成了映射 --> @JoinColumn 我们知道外键的生成的字段的名称是默认的...name 设置第三张表的名称 joinColumns 设置的是当前实体类对应的表在第三张表的外键的字段名称 inverseJoinColumns 设置的是另外一个实体类对应的表在第三张表的外键的字段名称

    2K10

    阿里Java编程规约【一】命名风格

    【强制】POJO 类中的任何布尔类型的变量,都不要加 is 前缀,否则部分框架解析会引起序列化错误。...说明:本文 MySQL 规约中的建表约定第 1 条,表达是与否的变量采用 is_xxx 的命名方式,所以需要在 设置从 is_xxx 到 xxx 的映射关系。...反例:定义为布尔类型 Boolean isDeleted 的字段,它的 getter 方法也是 isDeleted(),部分框架在反向解析时,“误以 为”对应的字段名称是 deleted,导致字段获取不到...【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形 式,但是类名如果有复数含义,类名可以使用复数形式。...数据对象:xxxDO,xxx 即为数据表名。 2. 数据传输对象:xxxDTO,xxx 为业务领域相关的名称。 3. 展示对象:xxxVO,xxx 一般为网页名称。 4.

    64520

    我真的不想再用 JPA 了

    国内为什么 MyBatis 用的多呢,传说是因为整个阿里系都用它。...JPA 全称是Java 持久化 API ,它的目的就是帮助我们提高开发效率,它的核心是 Java持久化查询语言 (JPQL),对存储在关系数据库中的实体进行查询。...在语法上类似于SQL查询,但是操作的是实体对象而不是直接对数据库表进行操作。...(摘自 wiki) 使用 JPA 开发的流程如下: 1、将数据库表映射到项目实体中 2、生成对应的 Repository 3、实现 Service ,Service 中调用 Repository...而且你想要实现一个 join 查询也是够费劲的,除了要写上面那套代码外,还要在实体上做手脚,想到就想哭,有没有。难道直接写个 sql 不好吗,为什么要这么糟蹋自己。

    1.5K30

    Java开发手册之命名风格「建议收藏」

    【强制】POJO类中布尔类型的变量,都不要加is,否则部分框架解析会引起序列化错误。...反例:定义为基本数据类型Boolean isDeleted;的属性,它的方法也是isDeleted(),RPC 框架在反向解析的时候,“以为”对应的属性名称是deleted,导致属性获取不到,进而抛出异常...【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。...正例: 应用工具类包名为com.alibaba.open.util、类名为MessageUtils(此规则参考 spring的框架结构) 【强制】杜绝完全不规范的缩写,避免望文不知义。...B) 领域模型命名规约 1) 数据对象:xxxDO,xxx即为数据表名。 2) 数据传输对象:xxxDTO,xxx为业务领域相关的名称。 3) 展示对象:xxxVO,xxx一般为网页名称。

    63110

    一、编程规约 (一)命名风格

    【强制】POJO类中布尔类型的变量,都不要加is前缀,否则部分框架解析会引起序列化错误。 ...反例:定义为基本数据类型Boolean isDeleted;的属性,它的方法也是isDeleted(),RPC框架在反向解析的时候,“误以为”对应的属性名称是deleted,导致属性获取不到,进而抛出异常...【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。 ...正例:应用工具类包名为com.alibaba.ai.util、类名为MessageUtils(此规则参考spring的框架结构) 【强制】杜绝完全不规范的缩写,避免望文不知义。 ...B) 领域模型命名规约  1) 数据对象:xxxDO,xxx即为数据表名。 2) 数据传输对象:xxxDTO,xxx为业务领域相关的名称。 3) 展示对象:xxxVO,xxx一般为网页名称。

    37020

    REST API URI的七大设计原则

    许多Web组件和框架将平等对待以下两个URI: http://api.canvas.com/shapes/ http://api.canvas.com/shapes 但是,实际上URI中的每个字符都会计入资源的唯一身份的识别中...规则6:文件扩展名不应包含在URI中 在Web上,(.)字符通常用于分隔URI的文件名和扩展名。 REST API不应在URI中包含人造文件扩展名,来指示邮件实体的格式。...规则7:端点名称是单数还是复数? keep-it-simple的原则在这里同样适用。...虽然一些”语法学家”会告诉你使用复数来描述资源的单个实例是错误的,但实际上为了保持URI格式的一致性建议使用复数形式。...本着API提供商更容易实施和API使用者更容易操作的原则,可以不必纠结一些奇怪的复数(person/people,goose/geese)。 但是应该怎么处理层级关系呢?

    1.9K60

    Java面向对象基础规范——命名规范

    【强制】POJO 类中布尔类型的变量,都不要加 is,否则部分框架解析会引起序列化错误。...反例:定义为基本数据类型 Boolean isDeleted;的属性,它的方法也是 isDeleted(),RPC框架在反向解析的时候,“以为”对应的属性名称是 deleted,导致属性获取不到,进而抛出异常...【强制】包名统一使用小写,点分隔符之间有且仅有一个自然语义的英语单词。包名统一使用单数形式,但是类名如果有复数含义,类名可以使用复数形式。...正例: 应用工具类包名为 com.alibaba.open.util、类名为 MessageUtils(此规则参考spring 的框架结构)10. 【强制】杜绝完全不规范的缩写,避免望文不知义。...B) 领域模型命名规约1) 数据对象:xxxDO,xxx 即为数据表名。2) 数据传输对象:xxxDTO,xxx 为业务领域相关的名称。3) 展示对象:xxxVO,xxx 一般为网页名称。

    61880
    领券