xiaowanggedege 2007-01-10
set节点有以下属性(摘自Hibernate文档):
(1)name集合属性的名称
(2)table(可选??默认为属性的名称)这个集合表的名称(不能在一对多的关联关系中使用)
(3)schema(可选)表的schema的名称,他将覆盖在根元素中定义的schema
(4)lazy(可选??默认为false)lazy(可选--默认为false)允许延迟加载(lazyinitialization)(不能在数组中使用)
(5)inverse(可选??默认为false)标记这个集合作为双向关联关系中的方向一端。
(6)cascade(可选??默认为none)让操作级联到子实体
(7)sort(可选)指定集合的排序顺序,其可以为自然的(natural)或者给定一个用来比较的类。
(8)order-by(可选,仅用于jdk1.4)指定表的字段(一个或几个)再加上asc或者desc(可选),定义Map,Set和Bag的迭代顺序
(9)where(可选)指定任意的SQLwhere条件,该条件将在重新载入或者删除这个集合时使用(当集合中的数据仅仅是所有可用数据的一个子集时这个条件非常有用)
(10)outer-join(可选)指定这个集合,只要可能,应该通过外连接(outerjoin)取得。在每一个SQL语句中,只能有一个集合可以被通过外连接抓取(译者注:这里提到的SQL语句是取得集合所属类的数据的Select语句)
(11)batch-size(可选,默认为1)指定通过延迟加载取得集合实例的批处理块大小("batchsize")。
(12)access(可选-默认为属性property):Hibernate取得属性值时使用的策略
many-to-one节点有以下属性(摘自Hibernate文档):
(1)name:属性名。
(2)column(可选):字段名。
(3)class(可选-默认是通过反射得到属性类型):关联的类的名字。
(4)cascade(级联)(可选):指明哪些操作会从父对象级联到关联的对象。
(5)outer-join(外连接)(可选-默认为自动):当设置hibernate.use_outer_join的时候,对这个关联允许外连接抓取。
(6)update,insert(可选-defaultstotrue)指定对应的字段是否在用于UPDATE和/或INSERT的SQL语句中包含。如果二者都是false,则这是一个纯粹的“外源性(derived)”关联,它的值是通过映射到同一个(或多个)字段的某些其他属性得到的,或者通过trigger(除法器),或者是其他程序。
(7)property-ref:(可选)指定关联类的一个属性,这个属性将会和本外键相对应。如果没有指定,会使用对方关联类的主键。
(8)access(可选-默认是property):Hibernate用来访问属性的策略。
cascade属性允许下列值:all,save-update,delete,none。设置除了none以外的其它值会传播特定的操作到关联的(子)对象中。参见后面的“LifecycleObjects(自动管理生命周期的对象)”。
outer-join参数允许下列三个不同值:
auto(默认)使用外连接抓取关联(对象),如果被关联的对象没有代理(proxy)
true一直使用外连接来抓取关联
false永远不使用外连接来抓取关联