欢迎来到天天文库
浏览记录
ID:13211676
大小:47.72 KB
页数:9页
时间:2018-07-21
《hibernate一对一映射配置详解》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Hibernate一对一映射配置详解Hibernate一对一映射配置详解雪飘寒目录Hibernate一对一映射配置详解1一、xml文件配置21.主键关联32.单方外键关联43.双方外键关联5二、注释方式配置(Annotation)61、主键关联62.单方外键关联73.双方外键关联89Hibernate一对一映射配置详解一对一关联分为主键关联与外键关联。主键关联:不必加额外的字段,只是主表和辅表的主键相关联,即这两个主键的值是一样的。外键关联:辅表有一个额外的字段和主表相关联,或者两个表都有额外的字段与对应表的相关联。一、xml文件配置官方文档解释2、me="propertyName"(1)class="ClassName"(2)cascade="cascade_style"(3)constrained="true3、false"(4)fetch="join4、select"(5)property-ref="propertyNameFromAssociatedClass"(6)access="field5、property6、ClassName"(7)formula="anySQLexpression"(8)lazy="proxy7、no-proxy8、false"(9)entity-name="EntityName"(10)no9、de="element-name10、@attribute-name11、element/@attribute12、."embed-xml="true13、false"foreign-key="foreign_key_name"/>(1)name:属性的名字。(2)class(可选-默认是通过反射得到的属性类型):被关联的类的名字。(3)cascade(级联)(可选):表明操作是否从父对象级联到被关联的对象。(4)constrained(约束)(可选):表明该类对应的表对应的数据库表,和被关联的对象所对应的数据库表之间,通过一个外键引用对主键进行约束。这个选项影响save()和delet14、e()在级联执行时的先后顺序以及决定该关联能否被委托(也在schemaexporttool中被使用).(5)fetch(可选-默认设置为选择):在外连接抓取或者序列选择抓取选择其一.(6)property-ref(可选):指定关联类的属性名,这个属性将会和本类的主键相对应。如果没有指定,会使用对方关联类的主键。(7)access(可选-默认是property):Hibernate用来访问属性的策略。(8)formula(可选):绝大多数一对一的关联都指向其实体的主键。在一些少见的情况中,你可能会指向其他的一个或多个字段,或者是一个表达式,这些情况下,你可以用一个SQL公式15、来表示。(可以在org.hibernate.test.onetooneformula找到例子)(9)lazy(可选-默认为proxy):默认情况下,单点关联是经过代理的。lazy="no-proxy"指定此属性应该在实例变量第一次被访问时应该延迟抓取(fetchelazily)(需要运行时字节码的增强)。lazy="false"指定此关联总是被预先抓取。注意,如果constrained="false",不可能使用代理,Hibernate会采取预先抓取!(10)entity-name(可选):被关联的类的实体名。9Hibernate一对一映射配置详解1.主键关联唯一外键关联16、:例:User和Account,一个用户对应一个账户。配置文件都用one-to-one,在辅表的one-to-one的属性里要加constrained="true"表示受到约束。所以,将辅表的id改成foreign然后加上属性参数等。UserAccountUser类与配置文件privateIntegerid;privateStringusername;privateStringpassword;privateAccountaccount;one-to-one中的class属性可以不写,默认Hibernate会使用反正自己去寻找。17、nt"class="piaohan.domain.Account"cascade="all"/>Account类与配置privateIntegerid;privateStringaccountNum;privateIntegermoney;privateUseruser;user
2、me="propertyName"(1)class="ClassName"(2)cascade="cascade_style"(3)constrained="true
3、false"(4)fetch="join
4、select"(5)property-ref="propertyNameFromAssociatedClass"(6)access="field
5、property
6、ClassName"(7)formula="anySQLexpression"(8)lazy="proxy
7、no-proxy
8、false"(9)entity-name="EntityName"(10)no
9、de="element-name
10、@attribute-name
11、element/@attribute
12、."embed-xml="true
13、false"foreign-key="foreign_key_name"/>(1)name:属性的名字。(2)class(可选-默认是通过反射得到的属性类型):被关联的类的名字。(3)cascade(级联)(可选):表明操作是否从父对象级联到被关联的对象。(4)constrained(约束)(可选):表明该类对应的表对应的数据库表,和被关联的对象所对应的数据库表之间,通过一个外键引用对主键进行约束。这个选项影响save()和delet
14、e()在级联执行时的先后顺序以及决定该关联能否被委托(也在schemaexporttool中被使用).(5)fetch(可选-默认设置为选择):在外连接抓取或者序列选择抓取选择其一.(6)property-ref(可选):指定关联类的属性名,这个属性将会和本类的主键相对应。如果没有指定,会使用对方关联类的主键。(7)access(可选-默认是property):Hibernate用来访问属性的策略。(8)formula(可选):绝大多数一对一的关联都指向其实体的主键。在一些少见的情况中,你可能会指向其他的一个或多个字段,或者是一个表达式,这些情况下,你可以用一个SQL公式
15、来表示。(可以在org.hibernate.test.onetooneformula找到例子)(9)lazy(可选-默认为proxy):默认情况下,单点关联是经过代理的。lazy="no-proxy"指定此属性应该在实例变量第一次被访问时应该延迟抓取(fetchelazily)(需要运行时字节码的增强)。lazy="false"指定此关联总是被预先抓取。注意,如果constrained="false",不可能使用代理,Hibernate会采取预先抓取!(10)entity-name(可选):被关联的类的实体名。9Hibernate一对一映射配置详解1.主键关联唯一外键关联
16、:例:User和Account,一个用户对应一个账户。配置文件都用one-to-one,在辅表的one-to-one的属性里要加constrained="true"表示受到约束。所以,将辅表的id改成foreign然后加上属性参数等。UserAccountUser类与配置文件privateIntegerid;privateStringusername;privateStringpassword;privateAccountaccount;one-to-one中的class属性可以不写,默认Hibernate会使用反正自己去寻找。17、nt"class="piaohan.domain.Account"cascade="all"/>Account类与配置privateIntegerid;privateStringaccountNum;privateIntegermoney;privateUseruser;user
17、nt"class="piaohan.domain.Account"cascade="all"/>Account类与配置privateIntegerid;privateStringaccountNum;privateIntegermoney;privateUseruser;user
此文档下载收益归作者所有