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

EF 约定介绍

,该集合属性里面的元素是另一个实体,则默认未一对多关系,即使没有显示指定一对多关系,EF会默认设置主外(主从)关系 (3)、一对一实体关系,需要手动设置主从关系 (4)、多对多无载荷关系实体...) Convention EF中,两个实体关系是通过导航属性方式来实现,每一个对象都能拥有一个它所参与关系导航属性,导航属性提供了一种方式在两端来操作这个关系来获取我们需要数据,可以返回任何一方引用对象...除了导航属性规定实体关系,属性来式规定实体间方式一种手段.Code First能够推断以下命名属性为(优先级从上到下): (1)、导航属性名+关联实体主键名 (2)、关联实体实体名+...关联实体主键名 (3)、关联实体主键名 注: (1)、当关系被检测到,Code First会根据可空性来推断关系具体形式;如果属性是可空,那么关系会被设置为可选,否则,关系就是必选.... (2)、当关联实体属性被设置为不为空,Code First会设置级联删除,反之不会。

1.6K100

优化OEA中聚合SQL

由于没有使用其它ORM框架,当时项目组决定做聚合SQL,主要是为了减少SQL查询次数,来提升部分模块性能。现在看来,当时虽然达到了这个目标,但是聚合SQLAPI却不简单,使用极为不便。...首先,是为表生成什么样列名,生成SQL按照这种列名约定进行生成,加载对象则在大表中找对应列数据。...框架对象聚合加载实现,和手写一样,也是基于原有的ReadFromTable方法,也不复杂,贴下代码,不再一一描述: /// /// 聚合实体加载器 /// </summary...    基于以上基础,我们需要一个流畅API来定义加载选项。...这一点对于一个框架设计人员来说,往往很重要,只有流畅、易用API才能对得起你客户:框架使用者。以下我只把给出几个为达到流畅API而特别设计类。

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

Java程序员面试题集(86-115)

【补充】有人为选择和评判Web框架提出了20条标准,包括:开发人员工作效率(能用1-5天搭建一个CRUD页面吗)、开发人员看法(用起来有意思吗)、学习曲线(学了一个星期或一个月后能干活吗)、项目健康状况...答:主要有以下三项区别: ① 如果没有找到符合条件记录, get方法返回null,load方法抛出异常 ②get方法直接返回实体对象, load方法返回实体对象代理 ③ 在Hibernate 3...这个对象所保存数据数据库没有任何关系,除非通过Sessionsave或者saveOrUpdate把临时对象数据库关联,并把数据插入或者更新到数据库,这个对象才转换为持久对象。...答:延迟加载就是并不是在读取时候就把数据加载进来,而是等到使用时再加载。Hibernate使用了虚拟代理机制实现延迟加载。返回给用户并不是实体本身,而是实体对象代理。...首先,出现no session or session was closed就证明了系统中已经存在主外关联,如果去掉延迟加载的话,则每次查询开销都会变得很大。

1.8K70

一些设计上基本常识

APISPI分离 框架或组件通常有两类客户,一个是使用者,一个是扩展者, API(Application Programming Interface)是给使用者用, 而SPI(Service...Provide Interface)是给扩展者用, 在设计时,尽量把它们隔离开,而不要混在一起, 也就是说,使用者是看不到扩展者写实现, 比如:一个Web框架,它有一个API接口叫Action...服务域/实体域/会话域分离 任何框架或组件,总会有核心领域模型,比如: SpringBean,StrutsAction,DubboService,NapoliQueue等等 这个核心领域模型及其组成部分称为实体域...可配置一定可编程,并保持友好CoC约定 因为使用环境不确定因素很多,框架总会有一些配置, 一般都会到classpath直扫某个指定名称配置,或者启动允许指定配置路径, 做为一个通用框架,...应该做到凡是能配置文件做一定要能通过编程方式进行, 否则当使用者需要将你框架另一个框架集成就会带来很多不必要麻烦, 另外,尽可能做一个标准约定,如果用户按某种约定做事,就不需要该配置项。

85110

SpringBoot2.x系列教程(八)SpringBoot常用注解汇总

@ConfigurationProperties:基于类型安全属性配置注入,可以将properties属性和一个Bean及其属性关联,从而实现类型安全配置。...Spring Web注解 @ResponseBody:表示该方法返回结果直接写入HTTP response body中,一般在异步获取数据或接口交互使用,用于构建RESTfulapi。...一般@Table结合使用,是如果表名和实体类名相同的话,@Table可以省略。...@Table:当实体类与其映射数据库表名不同名需要使用@Table注解说明,该标注@Entity注解并列使用,置于实体类声明语句之前,可写于单独语句行,也可声明语句同行。...@JoinColumn:用来指定所操作实体实体集合相关联数据库表中列字段。一对一,本表中指向另一个表;一对多,另一个表指向本表

1.3K10

Java架构-一些设计上基本常识

1、APISPI分离 框架或组件通常有两类客户,一个是使用者,一个是扩展者。...比如: 一个Web框架,它有一个API接口叫Action, 里面有个execute()方法,是给使用者用来写业务逻辑。然后,Web框架有一个SPI接口给扩展者控制输出方式。...2、服务域/实体域/会话域分离 任何框架或组件,总会有核心领域模型,比如: 实体域:像SpringBean,StrutsAction,DubboService,NapoliQueue等等 。...8、可配置一定可编程,并保持友好CoC约定 因为使用环境不确定因素很多,框架总会有一些配置, 一般都会到classpath直扫某个指定名称配置,或者启动允许指定配置路径, 做为一个通用框架,应该做到凡是能配置文件做一定要能通过编程方式进行..., 否则当使用者需要将你框架另一个框架集成就会带来很多不必要麻烦。

62320

ASP.NET MVC5高级编程——(3)MVC模式模型

而模型一般有:面向业务模型对象和面向视图模型对象。 2 什么是主键属性,什么是属性?...而称ArtistID属性为属性(foreign key),因为模型对应数据库中,专辑表(Album)和艺术家(Artist)表存在对应关系,即ArtistID是Album表!...基架模版检测模型类定义,然后生成控制器以及该控制器关联视图,有些情况下还会生成数据访问类。...4.执行基架代码 4.1用实体框架创建数据库--local-DB虚拟数据空间 EF框架代码优先方法会尽可能地使用约定而非配置(即MVC中约定优于配置)。...使用TryUpdateModel()方法,则会在验证成功返回true,失败或发生异常返回false: ? ?

4.7K40

框架

相同点:屏蔽jdbc api底层访问细节,使用我们不用jdbc api打交道,就可以访问数据。     ...ibatis好处:屏蔽jdbc api底层访问细节;将sql语句java代码进行分离;提供了将结果集自动封装称为实体对象对象集合功能,queryForList返回对象集合,用queryForObject...返回单个对象;提供了自动将实体对象属性传递给sql语句参数。   ...一对多关联映射和多对一关联映射实现基本原理都是一样,既是在多一端加入一个键指向一一端,而主要区别就是维护端不同。         ...容器:Spring 包含并管理应用中对象生命周期和配置。   MVC框架:SpringWEB框架是个精心设计框架,是Web框架一个很好替代品。

72020

Apache Shiro权限框架理论介绍

Shiro拥有易于理解API,你可以快速且容易地使用它来保护任何应用程序——从最小移动应用程序到最大web和企业应用程序。...Shiro 能做什么: 认证:验证用户身份 授权:对用户执行访问控制:判断用户是否被允许做某事 管理:在任何环境下使用 Session API,即使没有 Web 或EJB 容器。...由于环境多样性,使得 Shiro 可以使用多种配置机制。 users: ini 配置:ini 实际上是一个文本配置,包含了由唯一命名项来组织/值对。...---- Shiro 注销 logout(注销):currentUser.logout(); 调用 logout() 方法,现有 Session 将失效,而且身份将失去关联(在Web 应用程序中,RememberMe...建议在开发中,Controller层使用原生HttpSession对象,在Service层中使用Shiro提供Session对象

1.2K30

第四章:使用QueryDSLSpringDataJPA实现多表关联查询

对于业务逻辑复制系统来说都存在多表关联查询情况,查询返回对象内容也是根据具体业务来处理,我们本章主要是针对多表关联根据条件查询后返回单表对象,在下一章我们就会针对多表查询返回自定义对象实体。...本章目标 基于SpringBoot框架平台完成SpringDataJPAQueryDSL多表关联查询返回单表对象实例,查询完全采用QueryDSL语法进行编写。...构建项目 我们使用idea工具先来创建一个SpringBoot项目,添加依赖跟第三章:使用QueryDSLSpringDataJPA完成Update&Delete一致。...@Column(name = "tg_type_id") private Long typeId; } 我在商品表内并没有使用类型实体作为表之间关联而是只用具体类型编号,有的时候也是根据你需求来配置...总结 本章内容比较简单,我们使用QueryDSL完成了两个实体关联查询并返回实体实例方法,QueryDSL内也有LeftJoin、InnerJoin等关联查询不过都是基于具体实体类型来完成,本章就不做解释了

2.9K30

SpringDataJPA笔记(1)-基础概念和注解

SpringDataJPA基础概念和注解 一 JPA介绍 JPA是Java Persistence API简称,中文名Java持久层API,是JDK 5.0注解或XML描述对象-关系表映射关系...如声明一个实体类 Customer,它将映射到数据库中 customer 表上 @Table 当实体类与其映射数据库表名不同名需要使用 @Table 标注说明,该标注 @Entity 标注并列使用...optional:表示该属性是否允许为null, 默认为true @Column 当实体属性与其映射数据库表列不同名需要使用@Column 标注说明,该属性通常置于实体属性声明语句之前,还可...如果一个属性并非数据库表字段映射,就务必将其标示为@Transient,否则,ORM框架默认其注解为@Basic @Temporal 在核心 Java API 中并没有定义 Date 类型精度(temporal...one2one关系,关系维护端主键作为键指向关系被维护端主键,不再新建一个列 元数据属性说明: name:列名。

3.9K20

编程体系结构(08):Spring.Mvc.Boot框架

降低系统模块之间、对象之间、微服务服务之间耦合度,是软件工程核心问题之一。因为Spring框架核心思想就是IOC控制反转,用来实现对象之间解耦。...核心API封装 PlatformTransactionManager:平台事务管理器,Spring管理事务,必须使用事务管理器进行事务配置核心方法:获取事务,提交事务,回滚事务。...二、SpringMvc模式 1、Mvc模式理念 SpringMVC是一种基于Java实现MVC设计模式请求驱动类型轻量级Web框架,出自Spring框架全家桶,Spring框架无缝整合,使用了MVC...ResponseBody:该注解用于方法返回对象,可以通过配置转换器为指定数据响应格式,如果希望返回数据不是View试图页面,而是指定数据格式时候使用,例如:Json、Xml等。...四、对比分析 Spring框架相对Spring开源生态是最底层实现原理,SpringMvc是基于之上而来,主要简化Web控制层开发,例如之前Struts、Servlet都逐渐被替换。

62740

API快速开发平台设计思考

基于对象建模驱动 在整个API开发平台实现中,核心思想仍然应该是基于对象建模驱动,通过对象建模很好实现接口和底层数据库,数据库表之间解耦,也方便实现底层多数据库,多表支持能力。...对象建模和API接口契约 可以直接在API开发平台创建对象,并对数据项进行定义,对象是一个多层树状结构实体。一个对象可以向数据库生成多张表。...定义好对象可以直接生成类似RAML,YAML,WADL等接口契约文件。 类似Swagger工具一样,完成对象建模本身也可以直接导出不同语言,不同开发框架客户端消费框架,服务端提供框架代码。...一个对象可以映射到多张数据库表,因此在映射过程中除了完成数据库表和字段映射,还需要完成主外关联关系映射操作。 在完成对象模型和数据库表之间映射和适配后,基本发布API接口已经可用。...复合对象一次生成 比如将订单作为一个对象,实际包括了订单头和订单明细表,而在进行API生成时候可以一次生成基于订单对象插入操作,查询操作。最终查询出来是一个订单复合实体Json数据。

65510

Hibernate学习笔记2

4.Hibernate关联映射-数据对象三种关系介绍 Hibernate框架基于ORM设计思想,它将关系型数据库中表与我们java中类进行映射,一个对象就对应着表中一条记录,而表中字段对应着类中属性...数据库中表表之间存在着三种关系,也就是系统设计中三种实体关系。 4.1. 一对一 原则有两种: 唯一对应:在任意一方添加来描述对应关系 主键对应:一方主键作为另一方主键 ?...一对多(多对一) 客户订单之间一对多关系(多对一) 建表原则:在多一方添加来描述关联关系 ?...我们可以使用inverse属性来设置,双向关联由哪一方来维护表表之间关系。 ? Inverse它值如果为true代表,由对方来维护。...Inverse它值如果为false代表,由本方来维护。 关于inverse取值: 在哪一个表中,我们就让哪一方来维护。 5.6. 对象导航 ? 5.7.

1.4K40

API 快速开发平台设计思考

API快速开发平台设计思考 在整个API开发平台实现中,核心思想仍然应该是基于对象建模驱动,通过对象建模很好实现接口和底层数据库,数据库表之间解耦,也方便实现底层多数据库,多表支持能力。...对象建模和API接口契约 可以直接在API开发平台创建对象,并对数据项进行定义,对象是一个多层树状结构实体。一个对象可以向数据库生成多张表。...类似Swagger工具一样,完成对象建模本身也可以直接导出不同语言,不同开发框架客户端消费框架,服务端提供框架代码。 ?...一个对象可以映射到多张数据库表,因此在映射过程中除了完成数据库表和字段映射,还需要完成主外关联关系映射操作。 在完成对象模型和数据库表之间映射和适配后,基本发布API接口已经可用。...复合对象一次生成 比如将订单作为一个对象,实际包括了订单头和订单明细表,而在进行API生成时候可以一次生成基于订单对象插入操作,查询操作。最终查询出来是一个订单复合实体Json数据。

1.3K31

API快速开发平台设计和思考

基于对象建模驱动 在整个API开发平台实现中,核心思想仍然应该是基于对象建模驱动,通过对象建模很好实现接口和底层数据库,数据库表之间解耦,也方便实现底层多数据库,多表支持能力。...对象建模和API接口契约 可以直接在API开发平台创建对象,并对数据项进行定义,对象是一个多层树状结构实体。一个对象可以向数据库生成多张表。...定义好对象可以直接生成类似RAML,YAML,WADL等接口契约文件。 类似Swagger工具一样,完成对象建模本身也可以直接导出不同语言,不同开发框架客户端消费框架,服务端提供框架代码。...一个对象可以映射到多张数据库表,因此在映射过程中除了完成数据库表和字段映射,还需要完成主外关联关系映射操作。 在完成对象模型和数据库表之间映射和适配后,基本发布API接口已经可用。...复合对象一次生成 比如将订单作为一个对象,实际包括了订单头和订单明细表,而在进行API生成时候可以一次生成基于订单对象插入操作,查询操作。最终查询出来是一个订单复合实体Json数据。

98920

API快速开发平台设计思考

基于对象建模驱动 在整个API开发平台实现中,核心思想仍然应该是基于对象建模驱动,通过对象建模很好实现接口和底层数据库,数据库表之间解耦,也方便实现底层多数据库,多表支持能力。...对象建模和API接口契约 可以直接在API开发平台创建对象,并对数据项进行定义,对象是一个多层树状结构实体。一个对象可以向数据库生成多张表。...定义好对象可以直接生成类似RAML,YAML,WADL等接口契约文件。 类似Swagger工具一样,完成对象建模本身也可以直接导出不同语言,不同开发框架客户端消费框架,服务端提供框架代码。...一个对象可以映射到多张数据库表,因此在映射过程中除了完成数据库表和字段映射,还需要完成主外关联关系映射操作。 在完成对象模型和数据库表之间映射和适配后,基本发布API接口已经可用。...复合对象一次生成 比如将订单作为一个对象,实际包括了订单头和订单明细表,而在进行API生成时候可以一次生成基于订单对象插入操作,查询操作。最终查询出来是一个订单复合实体Json数据。

81910

Entity Framework 约定

约定,类似于接口,是一个规范和规则,使用Code First 定义约定来配置模型和规则。在这里约定只是记本规则,我们可以通过Data Annotaion或者Fluent API来进一步配置模型。...二、关系约定 在数据库中,我们可以通过多张表关联查询出数据,这多张表之间关联,就是他们关系。同样,也可以在模型中定义这样关系。...EF中定义关系要使用到导航属性,通过导航属性可以定义多个模型之间关系。大部分情况下我们会将导航属性和属性结合在一起使用。...当EF检测出外属性后,会根据属性是否为空来判断关系,如果可以为空,那么模型之间关系将会配置成可选,Code First 不会再关系上配置级联删除。...在Code First 不能推断出模型中主键,并且没有通过Data Annotations 或者Fluent API进行手动配置主键,该模型将会自动被配置为复杂类型,检测复杂类型要求该类型没有引用实体类型属性

1.3K10

实战 ASP.NET Web API

Web API 开发类似于 ASP.NET MVC 中控制器开发,但是相对于直接使用 ASP.NET MVC 来返回 Json 对象方式而言,Web API 封装了数据序列化、反序列化,接口、实现都更加简单...简单地说,如果要向浏览器、移动端提供 Json 数据格式 API,则应该首选 Web API 作为通信框架。 以下,我列出了在当前使用 Web API 开发系统,遇到几个知识点或问题。...Action 匹配 Web API 框架默认是基于 Restful 架构模式 ASP.NET MVC 有区别的是,它会根据 Http 请求 HttpMethod(Get、Post、Put、Delete...在面向服务架构中,往往不会直接把底层实体公布出来,让客户端直接进行 CRU 操作;而是公布一些粗粒度 RPC 形式服务操作。要使用 Web API 框架,我们需要修改默认配置。...API使用该名称来查找对应 Action 方法,而不再按照 HttpMethod 约定来查找对应 Action。

1.4K50
领券