Hibernate一对多和多对一中各个参数的说明

many-to-one节点有以下属性(摘自Hibernate文档):

序号属性说明
1name属性名
2column(可选): 外间字段名。它也可以通过嵌套的元素指定。
3class(可选 - 默认是通过反射得到属性类型): 关联的类的名字。
4cascade(级联) (可选): 指明哪些操作会从父对象级联到关联的对象。
5fetch(可选 - 默认为  select ): 在外连接抓取(outer-join fetching)和序列选择抓取(sequential select fetching)两者中选择其一。
6update, insert(可选 - defaults to  true ) 指定对应的字段是否包含在用于UPDATE   和/或  INSERT   的SQL语句中。如果二者都是false ,则这是一个纯粹的 “外源性(derived)”关联,它的值是通过映射到同一个(或多个)字段的某些其他属性得到 或者通过trigger(触发器)、或其他程序。
7property-ref(可选) 指定关联类的一个属性,这个属性将会和本外键相对应。 如果没有指定,会使用对方关联类的主键。
8access(可选 - 默认是  property ): Hibernate用来访问属性的策略。
9unique(可选): 使用DDL为外键字段生成一个唯一约束。此外, 这也可以用作property-ref 的目标属性。这使关联同时具有 一对一的效果。
10not-null(可选): 使用DDL为外键字段生成一个非空约束。
11optimistic-lock(可选 - 默认为  true ): 指定这个属性在做更新时是否需要获得乐观锁定(optimistic lock)。 换句话说,它决定这个属性发生脏数据时版本(version)的值是否增长。
12lazy(可选 - 默认为  proxy ): 默认情况下,单点关联是经过代理的。lazy="true" 指定此属性应该在实例变量第一次被访问时应该延迟抓取(fetche lazily)(需要运行时字节码的增强)。lazy="false" 指定此关联总是被预先抓取。
13not-found(可选 - 默认为  exception ): 指定外键引用的数据不存在时如何处理:  ignore 会将数据不存在作为关联到一个空对象(null)处理。
14entity-name(optional): 被关联的类的实体名。

set节点有以下属性(摘自Hibernate文档):

序号属性说明
1name集合属性的名称
2table(可选,默认为属性的名称)这个集合表的名称(不能在一对多的关联关系中使用)
3schema(可选) 表的schema的名称, 他将覆盖在根元素中定义的schema
4lazy(可选,默认为false) lazy(可选--默认为false) 允许延迟加载(lazy initialization )(不能在数组中使用)
5inverse(可选,默认为false) 标记这个集合作为双向关联关系中的方向一端。
6cascade(可选,默认为none) 让操作级联到子实体all: 所有情况下均进行关联操作,即save-update和delete。 none: 所有情况下均不进行关联操作。这是默认值。  save-update: 在执行save/update/saveOrUpdate时进行关联操作。  delete: 在执行delete 时进行关联操作。
7sort(可选)指定集合的排序顺序, 其可以为自然的(natural)或者给定一个用来比较的类。
8order-by(可选, 仅用于jdk1.4) 指定表的字段(一个或几个)再加上asc或者desc(可选), 定义Map,Set和Bag的迭代顺序 
9where(可选) 指定任意的SQL where条件, 该条件将在重新载入或者删除这个集合时使用(当集合中的数据仅仅是所有可用数据的一个子集时这个条件非常有用) 
10outer-join(可选)指定这个集合,只要可能,应该通过外连接(outer join)取得。在每一个SQL语句中, 只能有一个集合可以被通过外连接抓取(译者注: 这里提到的SQL语句是取得集合所属类的数据的Select语句) 
11batch-size(可选, 默认为1) 指定通过延迟加载取得集合实例的批处理块大小("batch size")。 
12access(可选-默认为属性property):Hibernate取得属性值时使用的策略