相关文章推荐
正直的剪刀  ·  PL/SQL --> ...·  1 年前    · 
聪明的领结  ·  git - SSH-Keygen "no ...·  1 年前    · 

B cAndDToB(C c, D d);

然后通过cAndDToA上的decorator手动调用:

@Mapper(decoratedWith=MyMapperDecorator.class)

public interface MyMapper {

A cAndDToA(C c, D d);

B cAndDToB(C c, D d);

public abstract class MyMapperDecorator implements MyMapper {

private final MyMapper delegate;

public MyMapperDecorator(MyMapper delegate) {

this.delegate = delegate;

@Override

public A cAndDToA(C c, D d) {

A a = delegate.cAndDToA( c, d );

a.setB( cAndDToB( c, d );

return a;

我们也将在目标方面为nested mappings提供支持.但我们还没有:)

11.1 Hibernate的内置 映射 类型   11.1.1 Java 基本类型的Hibernate 映射 类型   11.1.2 Java 时间和日期类型的Hibernate 映射 类型   11.1.3 Java 对象 类型的Hibernate 映射 类型   11.1.4 JDK自带的个别 Java 类的Hibernate 映射 类型   11.1.5 使用Hibernate内置 映射 类型  11.2 客户化 映射 类型   11.2.1 用客户化 映射 类型取代Hibernate组件   11.2.2 用UserType 映射 枚举类型   11.2.3 实现CompositeUserType接口   11.2.4 运行本节范例程序  11.3 操纵Blob和Clob类型数据  11.4 小结  11.5 思考题 第12章 映射 继承关系  12.1 继承关系树的每个具体类对应一个表   12.1.1 创建 映射 文件   12.1.2 操纵持久化 对象 12.2 继承关系树的根类对应一个表   12.2.1 创建 映射 文件   12.2.2 操纵持久化 对象 12.3 继承关系树的每个类对应一个表   12.3.1 创建 映射 文件   12.3.2 操纵持久化 对象 12.4 选择继承关系的 映射 方式  12.5 映射 多对一多态关联  12.6 小结  12.7 思考题 第13章 Java 集合类  13.1 Set(集)   13.1.1 Set的一般用法   13.1.2 HashSet类   13.1.3 TreeSet类   13.1.4 向Set中加入持久化类的 对象 13.2 List(列表)  13.3 Map 映射 )  13.4 小结  13.5 思考题 第14章 映射 值类型集合  14.1 映射 Set(集)  14.2 映射 Bag(包)  14.3 映射 List(列表)  14.4 映射 Map 14.5 对集合排序   14.5.1 在数据库中对集合排序   14.5.2 在内存中对集合排序  14.6 映射 组件类型集合  14.7 小结  14.8 思考题 第15章 映射 实体关联关系  15.1 映射 一对一关联   15.1.1 按照外键 映射 15.1.2 按照主键 映射 15.2 映射 单向多对多关联  15.3 映射 双向多对多关联关系   15.3.1 关联两端使用元素   15.3.2 在inverse端使用元素   15.3.3 使用组件类集合   15.3.4 把多对多关联分解为两个 一对多 关联  15.4 小结  15.5 思考题 第16章 Hibernate的检索策略  16.1 Hibernate的检索策略简介  16.2 类级别的检索策略   16.2.1 立即检索   16.2.2 延迟检索  16.3 一对多 和多对多关联的检索策略   16.3.1 立即检索(lazy属性为“false”)   16.3.2 延迟检索(lazy属性为默认值“true”)   16.3.3 增强延迟检索(lazy属性为“extra”)   16.3.4 批量延迟检索和批量立即检索(使用batch-size属性)   16.3.5 用带子查询的select语句整批量初始化orders集合(fetch属性为“subselect”)   16.3.6 迫切左外连接检索(fetch属性为“join”)  16.4 多对一和一对一关联的检索策略   16.4.1 迫切左外连接检索(fetch属性为“join”)   16.4.2 延迟检索(lazy属性为默认值“proxy”)   16.4.3 无代理延迟检索(lazy属性为“no-proxy”)   16.4.4 立即检索(lazy属性为“false”)   16.4.5 批量延迟检索和批量立即检索(使用batch-size属性)  16.5 控制迫切左外连接检索的深度  16.6 在应用程序中显式指定迫切左外连接检索策略  16.7 属性级别的检索策略  16.8 小结  16.9 思考题 第17章 Hibernate的检索方式(上)  17.1 Hibernate的检索方式简介   17.1.1 HQL检索方式   17.1.2 QBC检索方式   17.1.3 本地SQL检索方式   17.1.4 关于本章范例程序   17.1.5 使用别名   17.1.6 多态查询   17.1.7 对查询结果排序   17.1.8 分页查询   17.1.9 检索单个 对象 (uniqueResult()方法)   17.1.10 按主键逐个处理查询结果(iterate()方法)   17.1.11 可滚动的结果集   17.1.12 在HQL查询语句中绑定参数   17.1.13 设置查询附属事项   17.1.14 在 映射 文件中定义命名查询语句   17.1.15 在HQL查询语句中调用函数  17.2 设定查询条件   17.2.1 比较运算   17.2.2 范围运算   17.2.3 字符串模式匹配   17.2.4 逻辑运算   17.2.5 集合运算  17.3 小结  17.4 思考题 第18章 Hibernate的检索方式(下)  18.1 连接查询   18.1.1 默认情况下关联级别的运行时检索策略   18.1.2 迫切左外连接   18.1.3 左外连接   18.1.4 内连接   18.1.5 迫切内连接   18.1.6 隐式内连接   18.1.7 右外连接   18.1.8 使用SQL风格的交叉连接和隐式内连接   18.1.9 关联级别运行时的检索策略  18.2 投影查询  18.3 报表查询   18.3.1 使用聚集函数   18.3.2 分组查询   18.3.3 优化报表查询的性能  18.4 高级查询技巧   18.4.1 动态查询   18.4.2 集合过滤   18.4.3 子查询   18.4.4 本地SQL查询   18.4.5 查询结果转换器  18.5 查询性能优化   18.5.1 iterate()方法   18.5.2 查询缓存  18.6 小结  18.7 思考题 第19章 Hibernate高级配置  19.1 配置数据库连接池   19.1.1 使用默认的数据库连接池   19.1.2 使用配置文件指定的数据库连接池   19.1.3 从容器中获得数据 19.1.4 由 Java 应用本身提供数据库连接  19.2 配置事务类型  19.3 把SessionFactory与JNDI绑定  19.4 配置日志  19.5 使用XML格式的配置文件  19.6 小结  19.7 思考题 第20章 声明数据库事务  20.1 数据库事务的概念  20.2 声明事务边界的方式  20.3 在mysql.exe程序中声明事务  20.4 Java 应用通过JDBC API声明JDBC事务  20.5 Java 应用通过Hibernate API声明JDBC事务   20.5.1 处理异常   20.5.2 Session与事务的关系   20.5.3 设定事务超时  20.6 Java 应用通过Hibernate API声明JTA事务  20.7 Java 应用通过JTA API声明JTA事务  20.8 小结  20.9 思考题 第21章 处理并发问题  21.1 多个 事务并发运行时的并发问题   21.1.1 第一类丢失更新   21.1.2 脏读   21.1.3 虚读   21.1.4 不可重复读   21.1.5 第二类丢失更新  21.2 数据库系统的锁的基本原理   21.2.1 锁的多粒度性及自动锁升级   21.2.2 锁的类型和兼容性   21.2.3 死锁及其防止办法  21.3 数据库的事务隔离级别   21.3.1 在mysql.exe程序中设置隔离级别   21.3.2 在应用程序中设置隔离级别  21.4 在应用程序中采用悲观锁   21.4.1 利用数据库系统的独占锁来实现悲观锁   21.4.2 由应用程序实现悲观锁  21.5 利用Hibernate的版本控制来实现乐观锁   21.5.1 使用元素   21.5.2 使用元素   21.5.3 对游离 对象 进行版本检查   21.5.4 强制更新版本  21.6 实现乐观锁的其他方法  21.7 小结  21.8 思考题 第22章 管理Hibernate的缓存  22.1 缓存的基本原理   22.1.1 持久化层的缓存的范围   22.1.2 持久化层的缓存的并发访问策略  22.2 Hibernate的二级缓存结构  22.3 管理Hibernate的第一级缓存  22.4 管理Hibernate的第二级缓存   22.4.1 配置进程范围内的第二级缓存   22.4.2 配置集群范围内的第二级缓存   22.4.3 在应用程序中管理第二级缓存   22.4.4 Session与第二级缓存的交互模式  22.5 运行本章的范例程序  22.6 小结  22.7 思考题 第23章 管理Session和实现对话  23.1 管理Session 对象 的生命周期   23.1.1 Session 对象 的生命周期与本地线程绑定   23.1.2 Session 对象 的生命周期与JTA事务绑定  23.2 实现对话   23.2.1 使用游离 对象 23.2.2 使用手工清理缓存模式下的Session  23.3 小结  23.4 思考题 第24章 Hibernate与Struts框架  24.1 实现业务数据  24.2 实现业务逻辑  24.3 netstore应用的订单业务  24.4 小结 第25章 Hibernate与EJB组件  25.1 创建EJB组件   25.1.1 编写Remote接口   25.1.2 编写Home接口   25.1.3 编写Enterprise Java Bean类  25.2 在业务代理类中访问EJB组件  25.3 发布J2EE应用   25.3.1 在JBoss上部署EJB组件   25.3.2 在JBoss上部署Web应用   25.3.3 在JBoss上部署J2EE应用  25.4 小结 附录A 标准SQL语言的用法  A.1 数据完整性   A.1.1 实体完整性   A.1.2 域完整性   A.1.3 参照完整性  A.2 DDL数据定义语言  A.3 DML数据操纵语言  A.4 DQL数据查询语言   A.4.1 简单查询   A.4.2 连接查询   A.4.3 子查询   A.4.4 联合查询   A.4.5 报表查询 附录B Java 语言的反射机制  B.1 Java Reflection API简介  B.2 运用反射机制来持久化 Java 对象 附录C 用XDoclet工具生成 映射 文件  C.1 创建带有@hibernate标记的 Java 文件  C.2 建立项目的目录结构  C.3 运行XDoclet工具 附录D 发布和运行netstore应用  D.1 运行netstore所需的软件  D.2 netstore应用的目录结构  D.3 安装SAMPLEDB数据库  D.4 安装和配置JBoss服务器  D.5 发布netstore应用   D.5.1 在工作模式1下发布netstore应用   D.5.2 在工作模式2下发布netstore应用  D.6 运行netstore应用 附录E Hibernate 3升级指南  E.1 Hibernate API 变化   E.1.1 包名   E.1.2 org.hibernate.classic包   E.1.3 Hibernate所依赖的第三方软件包   E.1.4 异常模型   E.1.5 Session接口   E.1.6 createSQLQuery()   E.1.7 Lifecycle 和 Validatable 接口   E.1.8 Interceptor接口   E.1.9 UserType和CompositeUserType接口   E.1.10 FetchMode类   E.1.11 PersistentEnum类   E.1.12 对Blob 和Clob的支持   E.1.13 Hibernate中供扩展的API的变化  E.2 元数据的变化   E.2.1 检索策略   E.2.2 对象 标识符的 映射 E.2.3 集合 映射 E.2.4 DTD  E.3 查询语句的变化  E.4 把Hibernate 2应用升级到Hibernate 3应用 对于代码中 Java Bean之间的转换, 一直是困扰我很久的事情。在开发的时候我看到业务代码之间有很多的 Java Bean 之间的相互转化, 非常的影响观感,却又不得不存在。我后来想的一个办法就是通过反射,或者自己写很多的转换器。 第一种通过反射的方法确实比较方便,但是现在无论是 BeanUtils, BeanCopier 等在使用反射的时候都会影响到性能。虽然我们可以进行反射信息的缓存来提高性能。但是像这种的话,需要类型和名称都一样才会进行 映射 ,有很多时候,由于不同的团队之间使用的名词不一样,还是需要很. MapStruct 是一个非常实用的 Java 对象 映射 工具,它可以帮助你轻松地完成不同类型之间的转换。相对于手动进行 对象 映射 MapStruct 可以减少很多模板代码的编写,提高开发效率,同时也可以减少因手动 映射 而产生的错误。总的来说, MapStruct 是一款非常实用的 Java 对象 映射 工具,特别适合处理简单 对象 转换的场景。 MapStruct 在处理简单 对象 转换时效果非常好,而且易于学习和使用。例如:状态(0:禁用,1:启用)、性别(0:未知,1:男性,2:女性)Integer转String。 mapstruct 在当前轻量级框架开发中的重点使用,@Named注解使用示例,@After Map ping与@Before Map ping注解的详细常见用法,在转换DTO时,与过去常用的beanUtil转换有高性能的转换优势,编译期自动生成的 map per实现类能够更加优雅的来实现各种隐式类型转换,以实现快速而又敏捷的开发,告别臃肿的手动get、set与类型的强转...... 多个 并行的类实现相似的代码逻辑。我们可以考虑提取相同逻辑在父类中实现,差异逻辑通过抽象方法留给子类实现。对于相同的流程和逻辑,我们还可以借鉴模板方法模式将其固定成模板,保留差异的同时尽可能避免代码重复。下面是一个利用模板方法模式定义流程的示例代码:arduino复制代码。 1、entity 里的每一个字段,与数据库相对应, 2、vo 里的每一个字段,是和你前台 html 页面相对应, 3、dto 这是用来转换从 entity 到 vo,或者从 vo 到 entity 的中间的东西 。(DTO中拥有的字段应该是entity中或者是vo中的一个子集) 举个例子: 你的html页面上有三个字段,name,pass,age 你的数据库表里,有两个字段,name,pass , 注意没有 age。 而你的 vo 里,就应该有下面三个成 通常,我们需要将域模型转换为DTO(数据传输 对象 ),反之亦然。将数据传输到前端或远程接口时,这是必需的。手动处理复杂的 映射 变得很麻烦,并可能导致错误。在本文中,我想介绍 MapStruct ,这是一个 Java 注释处理器,可以在编译时为 Java bean生成 映射 器实现。它使用简单的 Java 方法调用来 映射 对象 ,并且不涉及任何反射或运行时处理。我将引导您完成将 MapStruct 集成到Spring Boot应... 使用 MapStruct .举个例子:class Dto {DtoA a;DtoB b;}class DtoA {Long id;//...}class DtoB {Long id;//...}class Entity {AB ab;}如何将DtoA和DtoB 映射 到AB?我试过了:public abstract Entity toEntity(Dto dto);@ Map pings({@ Map ping(... 该说的在《SpringBoot集成Mybatis项目实操》一文中都讲了,本文只是将 Mybatis 换成了 Spring Data JPA,带大家将整个项目跑起来。本文将实现 SpringBoot+ Spring Data JPA 的项目搭建,项目特色是针对 JPA 专门写了一套动态链式查询工具类,进而实现 一对多 查询和连表查询。不说废话了,我们直接进入主题。修改 CustomerDTO,当新增数据时,校验 name 不为空,修改数据时,address 不为空。 在Hibernate配置文件中使用, , , , 和 等元素来定义集合,而是最典型的一个。 < map name="propertyName" (1) table="table_name" (2) s 在 JAVA 项目开发过程中,经常会设计到 对象 间属性值拷贝,这种场景有 多个 框架或者技术可以实现,比如Spring和Apache给我们提供了BeatUtils工具,但是他的实现机制是通过反射,导致拷贝属性的花费时间较长,性能很低。 这里我们介绍一个新的框架 MapStruct 来实现。