org.hibernate.cfg.annotations.QueryBinder: 抽象静态帮助类
-- public static void bindSqlResultsetMapping(SqlResultSetMapping ann, Mappings, boolean isDefault): 使用ann,mapping和isDefault建立ResultsetMappingSecondPass
的一个对象,作为参数调用mapping.addSecondPass(
SecondPass
);
-- public static void bindSqlResultsetMappings(SqlResultSetMappings, Mappings, boolean isDefault): 遍历@SqlResultSetMappings
对每一个@SqlResultSetMapping
使用ann,mapping和true(@QUESTION永远用true,isDefault根本没用上)
建立ResultsetMappingSecondPass
的一个对象,作为参数调用mapping.addSecondPass(
SecondPass
);
-- public static void bindQueries(NamedQueries ann, Mappings, boolean isDefault): 遍历@NamedQueries
对每一个@NamedQuery
,调用bindQuery(NamedQuery ann, Mappings, boolean)。
-- public static void bindQuery(NamedQuery ann, Mappings, boolean isDefault): 解析JPA的EJBQL注解,使用query属性和hint属性构造NamedQueryDefinition
对象,并根据isDefault参数的T/F分别调用mappings.addDefaultQuery(name属性, NamedQueryDefinition对象)
或者mappings.addQuery(name属性, NamedQueryDefinition对象)
,期间如果name属性不存在,或者hint属性类型有错误都会抛出AnnotationException
;其中hint属性可以包括JPA或者Hibernate的(@IGNORE
具体属性参考方法实现
)
-- public static void bindQueries(NamedQueries hAnn, Mappings): 遍历@NamedQueries
对每一个@NamedQuery
,调用bindQuery(NamedQuery hAnn, Mappings);
-- public static void bindQuery(NamedQuery hAnn, Mappings mappings): :
解析Hibernate的HQL注解,使用query属性和一系列配置属性构造NamedQueryDefinition
对象,并调用mappings.addQuery(name属性,
NamedQueryDefinition对象)
,期间如果name属性不存在会抛出
AnnotationException
;其中配置属性固定为Hibernate的(@IGNORE
具体属性参考方法实现
)
-- public static void bindNativeQueries(NamedNativeQueries ann, Mappings, boolean isDefault): 遍历@NamedNativeQueries
对每一个@Named
Native
Query
,调用bind
Native
Query(NamedQuery ann, Mappings, boolean)。
-- public static void bind
NativeQuery
(NamedNative
Query ann, Mappings, boolean isDefault): 解析JPA的SQL注解,构造NamedSQLQueryDefinition
对象,最后根据isDefault参数的T/F分别调用mappings.addDefaultSQLQuery(name属性,
NamedSQLQueryDefinition
对象)
或者mappings.addSQLQuery(name属性,
NamedSQLQueryDefinition
对象)
,期间如果name属性不存在,或者hint属性类型有错误都会抛出AnnotationException
;其中hint属性可以包括JPA或者Hibernate的,同JPA的EJBQL注解(参见bindQuery),NamedSQLQueryDefinition
对象构造过程如下:
- 如果ann存在resultSetMapping属性,则使用该属性和query属性以及hint属性构造NamedSQLQueryDefinition
对象;
- 如果存在resultClass属性,则使用该属性的name属性值构造NativeSQLQueryRootReturn
对象,并和query属性以及hint属性一起构造NamedSQLQueryDefinition
对象;
- 如果上述2者都不存在,则抛出NotYetImplementedException
,该类为MappingException
的子类
-- public static void bindNative
Queries(NamedNative
Queries hAnn, Mappings): 遍历@Named
Native
Queries
对每一个@Named
Native
Query
,调用bindQuery(Named
Native
Query hAnn, Mappings);
-- public static void bindNative
Query(NamedNative
Query hAnn, Mappings mappings): 解析Hibernate的SQL注解,构造NamedSQLQueryDefinition
对象,最后调用mappings.addSQLQuery(name属性,
NamedSQLQueryDefinition
对象)
,期间如果name属性不存在会抛出AnnotationException
;其中配置属性固定为Hibernate的,同HQL注解(参见bindQuery),NamedSQLQueryDefinition
对象构造过程如下:
- 如果ann存在resultSetMapping属性,则使用该属性和query属性以及其他一系列配置属性构造NamedSQLQueryDefinition
对象;
- 如果存在resultClass属性,则使用该属性的name属性值构造NativeSQLQueryRootReturn
对象,并和query属性以及其他一系列配置属性一起构造NamedSQLQueryDefinition
对象;
- 如果上述2者都不存在,则抛出NotYetImplementedException
,该类为MappingException
的子类
org.hibernate.mapping.IdGenerator: 对id生成机制配置的抽象
-- String name
-- String identifierGeneratorStrategy: 存放实现具体IdentifierGenerator接口的id生成策略类的名字
-- params: Properties属性集合
org.hibernate.id.IdentifierGenerator: 所有id生成机制的最高接口
org.hibernate.cfg.annotations.ResultsetMappingSecondPass: 对ResultsetMapping的抽象
-- sqlResultSetMapping:
SqlResultSetMapping类型的ann
otation对象
-- mappings:
-- boolean isDefault
org.hibernate.cfg.VerifyFetchProfileReferenceSecondPass: 对FetchProfile的抽象
-- String fetchProfileName
-- fetch: FetchProfile.FetchOverride类型的annotation对象
-- mappings
org.hibernate.engine.NamedQueryDefinition: 对对象查询语句的抽象
-- String query: 语句本身
-- boolean cacheable: 是否缓存
-- String cacheRegion: 缓存在哪里
-- Integer timeout: 貌似是JPA唯一支持的属性
-- Integer fetchSize
-- flushMode
-- parameterTypes: Map<?>
-- cacheMode
-- boolean readOnly
-- String comment
org.hibernate.engine.NamedSQLQueryDefinition extends NamedQueryDefinition: 对SQL查询语句的抽象,重用了对象查询语句的所有属性
-- queryReturns: NativeSQLQueryReturn
对象的数组,指定返回结果为一组实体对象,和resultSetRef
互斥
-- String resultSetRef: 指定返回结果为一个resultSet的mapping,和queryReturns
互斥
-- List<String> querySpaces:
-- boolean callable
org.hibernate.engine.query.sql.NativeSQLQueryRootReturn extends NativeSQLQueryNonScalarReturn: 对sql返回的实体对象类型的抽象
-- String returnEntityName
-- int hashCode: 根据returnEentityName
生成的hash code
-- String alias
-- lockMode
-- propertyResults: Map<?>
org.hibernate.engine.FilterDefinition: 对查询过滤器的抽象
-- String filterName
-- String defaultFilterCondition
-- Map parameterTypes: 参数名字和类型的Map
org.hibernate.mapping.TypeDef: 对类型定义的抽象
-- String typeClass
-- Properties parameters
分享到:
相关推荐
一、solidity中,映射的关键字为mapping,首先我们先来定义两个mapping, mapping(address =>uint) idmapping和mapping(uint =>string) namemapping。idmapping用来表示地址变量和整型变量的对应关系,在注册过程中...
本入门工程包提供了使用XML和Annotation两种方式来实现Hibernate O/R Mapping的示例,旨在帮助初学者快速掌握其基本原理和实践方法。 首先,让我们了解什么是O/R Mapping。O/R Mapping是将数据库中的表格记录映射为...
借助新的 Hibernate Annotation 库,即可一次性地分配所有旧映射文件,一切都会按照您的想法来定义——注释直接嵌入到您的 Java 类中,并提供一种强大及灵活的方法来声明持久性映射。 Hibernate Annotation 的优点...
在深入探讨`hibernate-mapping`参数之前,我们先理解一下Hibernate的核心概念。Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者使用面向对象的方式来操作数据库。`hibernate-mapping`是Hibernate配置...
hibernate-mapping-3.0.dtd 配置后,就会在xml中进行提示
在Hibernate 3.x之前,对象到数据库的映射通常通过XML配置文件(如`hibernate.cfg.xml`和`hibernate-mapping.xml`)来完成。然而,随着Java注解的广泛使用,Hibernate也引入了注解方式,使得代码更加简洁、直观。...
因为Hibernate在读出hbm.xml文件时需要通过网络读取到hibernate-mapping-3.0.dtd 文件。 如果没有网络不能正常工作。 所以提供上述文件。 以及hibernate-mapping-3.0.dtd,hibernate-configuration-3.0.dtd提供下载...
《Hibernate Mapping:深入理解与应用》 Hibernate Mapping是Java领域中一种重要的对象关系映射(ORM)技术,它使得开发者可以使用面向对象的方式来操作数据库,极大地简化了数据存取的操作。在Hibernate中,...
本文将深入探讨Hibernate的核心概念,结合提供的中文文档,以及hibernate-annotation-3.4.0GA和hibernate-distribution-3.3.2.GA的相关资料,为开发者提供详尽的学习资源。 首先,Hibernate中文文档是理解框架基础...
在本文中,我们将深入探讨如何使用Hibernate 4框架进行初步的“Hello World”实践。Hibernate是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。通过将Java对象与数据库表之间的...
《深入理解Hibernate配置与映射:hibernate-configuration-3.0.dtd与hibernate-mapping-3.0.dtd解析》 在Java世界里,Hibernate作为一款强大的对象关系映射(ORM)框架,极大地简化了数据库操作。而`hibernate-...
借助新的 Hibernate Annotation 库,即可一次性地分配所有旧映射文件——一切都会按照您的想法来定义——注释直接嵌入到您的 Java 类中,并提供一种强大及灵活的方法来声明持久性映射。 使用 Hibernate 注解的优点...
### Eclipse 配置 Hibernate3 插件,生成 Mapping 和 Java #### 一、概述 本文主要介绍如何在 Eclipse IDE 中配置 Hibernate3 插件,并利用该插件自动生成数据库映射文件(Mapping)及对应的 Java 实体类。通过这...
1. Hibernate ORM:Hibernate是一个开源的Java库,它的主要功能是提供ORM(Object-Relational Mapping)服务。ORM允许开发人员使用面向对象的编程模型来处理数据库,而不是直接编写SQL语句,从而降低了数据库管理和...