hibernate常用关联
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="Contract.Domain.Teacher,CCRModel" table="TEACHER">
<id name="Id" type="int" column="Id" >
<generator class="native" />
</id>
<property name="TName" column="T_NAME" />
<bag name="Students" cascade="all">
<key column="TEACHER_ID" not-null="true"/>
<one-to-many class="Contract.Domain.Student"/>
</bag>
</class> </hibernate-mapping> <?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="Contract.Domain.Student,CCRModel" table="STUDENT">
<id name="Id" type="int" column="Id" >
<generator class="native" />
</id>
<property name="SName" column="S_NAME" /> <many-to-one name="Teacher" class="Contract.Domain.Teacher" column="TEACHER_ID" not-null="true"/>
</class> </hibernate-mapping> var session1 = Dao.GetSession(); Teacher t = new Teacher() { TName = "laoshi" }; Student s1 = new Student() { SName = "t1" }; Student s2 = new Student() { SName = "t2" }; t.Students = new List<Student>();
t.Students.Add(s1);
t.Students.Add(s2); s1.Teacher = t;
s2.Teacher = t; session1.SaveOrUpdate(t); session1.Flush(); var gt=session1.Get<Teacher>(); var stu = session1.Get<Student>(); return; 多对多 关系拆分 分为1和2和3三个步骤,其中BasIssuer和BasCreditRating两个都是一端各自拥有一个1对多的关系,而中间实体是多端配置有两个多对一的关系
.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="Contract.Domain.BasIssuer,BASModel" table="BAS_ISSUER">
<id name="Id" column="ISSUER_ID" unsaved-value="null">
<generator class="sequence" >
<param name="sequence">BAS_MODULE_SEQ</param>
</generator>
</id>
<property name="IssuerCode" column="ISSUER_CODE" />
<property name="IssuerName" column="ISSUER_NAME" />
<!--<property name="Region" column="REGION_ID" />-->
<property name="CreateUid" column="CREATE_UID" />
<property name="CreateUname" column="CREATE_UNAME" />
<property name="CreateOid" column="CREATE_OID" />
<property name="CreatePid" column="CREATE_PID" />
<property name="CreateDate" column="CREATE_DATE" />
<property name="LastModUid" column="LAST_MOD_UID" />
<property name="LastModUname" column="LAST_MOD_UNAME" />
<property name="LastModOid" column="LAST_MOD_OID" />
<property name="LastModPid" column="LAST_MOD_PID" />
<property name="LastModDatetime" column="LAST_MOD_DATETIME" />
<property name="Status" column="STATUS" />
<property name="IsDeleted" column="IS_DELETED"/>
<!--<property name="CreditRate" column="CREDIT_RATE" />-->
<!--<property name="CreditAgencyId" column="CREDIT_AGENCY_ID" />-->
<property name="IssuerType" column="ISSUER_TYPE" />
<!--<property name="IndustrySectorId" column="INDUSTRY_SECTOR_ID" />-->
<property name="CreatedEmployeeName" column="CREATED_EMPLOYEE_NAME" update="false"/>
<property name="CreatedEmployeeId" column="CREATED_EMPLOYEE_ID" update="false"/> <many-to-one name="Region" class="Contract.Domain.BasRegion" column="REGION_ID"/>
<many-to-one name="IndustrySector" class="Contract.Domain.BasSectorInfo" column="INDUSTRY_SECTOR_ID"/> <bag name="IssuerRating" cascade="all">
<key column="E_ID" />
<one-to-many class="Contract.Domain.RealCreditEntity,BASModel" />
</bag>
</class>
</hibernate-mapping>
.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="Contract.Domain.BasCreditRating,BasModel" table="BAS_CREDIT_RATING">
<id name="Id" type="string" column="Id" unsaved-value="null">
<generator class="sequence" >
<param name="sequence">BAS_MODULE_SEQ</param>
</generator>
</id>
<property name="CreditRatingCode" >
<column name="CREDIT_RATING_CODE">
<comment>
信用评级编码
</comment>
</column>
</property>
<property name="CreditRatingName" >
<column name="CREDIT_RATING_NAME">
<comment>
信用评级名称
</comment>
</column>
</property>
<property name="RatingTypeLookupId" >
<column name="RATING_TYPE_LOOKUP_ID">
<comment>
评级类型ID
</comment>
</column>
</property>
<!--<property name="CreditRatingAgencyId" >
<column name="CREDIT_RATING_AGENCY_ID">
<comment>
评级机构ID
</comment>
</column>
</property>-->
<property name="CreditRatingValue" >
<column name="CREDIT_RATING_VALUE">
<comment>
评级分数
</comment>
</column>
</property>
<property name="Remarks" >
<column name="REMARKS">
<comment>
备注
</comment>
</column>
</property>
<property name="CreatedBy" >
<column name="CREATED_BY">
<comment>
创建人
</comment>
</column>
</property> <property name="CreateDate" update="false">
<column name="CREATE_DATE">
<comment>
创建日期
</comment>
</column>
</property>
<property name="UpdatedBy" >
<column name="UPDATED_BY">
<comment>
更新人
</comment>
</column>
</property>
<property name="UpdateDate" >
<column name="UPDATE_DATE">
<comment>
更新日期
</comment>
</column>
</property> <property name="CreatedEmployeeName" update="false">
<column name="CREATED_EMPLOYEE_NAME">
<comment>
created_employee_name
</comment>
</column>
</property> <property name="CreatedEmployeeId" update="false">
<column name="CREATED_EMPLOYEE_ID">
<comment>
created_employee_id
</comment>
</column>
</property>
<property name="Version" >
<column name="VERSION">
<comment>
评级版本
</comment>
</column>
</property>
<property name="IsDeleted" >
<column name="IS_DELETED">
<comment>
假删除标记
</comment>
</column>
</property>
<bag name="RatingIssuer" >
<key column="C_ID" />
<one-to-many class="Contract.Domain.RealCreditEntity,BASModel" />
</bag>
<many-to-one name="CreditRatingAgency" class="Contract.Domain.BasCreditRatingAgency" column="CREDIT_RATING_AGENCY_ID"/> </class>
</hibernate-mapping>
.
<?xml version="1.0" encoding="utf-8" ?>
<hibernate-mapping xmlns="urn:nhibernate-mapping-2.2">
<class name="Contract.Domain.RealCreditEntity,BASModel" table="RELA_CREDIT_ENTITY">
<id name="Id" column="ID" unsaved-value="null">
<generator class="sequence" >
<param name="sequence">BAS_MODULE_SEQ</param>
</generator>
</id>
<property name="RatingDate" column="RATING_DATE" />
<many-to-one name="Issuer" class="Contract.Domain.BasIssuer" column="E_ID"/>
<many-to-one name="Rating" class="Contract.Domain.BasCreditRating" column="C_ID"/>
</class>
</hibernate-mapping>
hibernate常用关联的更多相关文章
- Hibernate常用接口
Hibernate的接口类型 在了解了Hibernate的基本配置,映射文件后,道路已经铺平了.我们继续往前走.接下来,我们应该做的是了解Hibernate常用的接口,对Hibernate的工作方式进 ...
- Hibernate常用查询语句
Hibernate常用查询语句 Hib的检索方式1'导航对象图检索方式.通过已经加载的对象,调用.iterator()方法可以得到order对象如果是首次执行此方法,Hib会从数据库加载关联的orde ...
- java:Hibernate框架1(环境搭建,Hibernate.cfg.xml中属性含义,Hibernate常用API对象,HibernteUitl,对象生命周期图,数据对象的三种状态,增删查改)
1.环境搭建: 三个准备+7个步骤 准备1:新建项目并添加hibernate依赖的jar文件 准备2:在classpath下(src目录下)新建hibernate的配置文件:hibernate.cf ...
- Hibernate注解----关联映射注解以及课程总结详解----图片版本
上一篇,记录了Hibernate注解----类级别注解以及属性注解详解 ,我们这一节主要讲解的是Hibernate注解----关联映射注解以及课程总结详解. 本节的主要内容: 第3章 关联映射注解 3 ...
- Hibernate的关联映射——双向1-N关联
Hibernate的关联映射--双向1-N关联 对于1-N的关联,Hibernate推荐使用双向关联,而且不要让1的一端控制关联关系,而是用N的一端控制关联关系.双线的1-N关联和N-1关联是两种相同 ...
- Hibernate的关联映射——单向1-N关联
Hibernate的关联映射--单向1-N关联 单向1-N关联的持久化类里需要使用集合属性.因为1的一端需要访问N的一端,而N的一端将以集合(Set)形式表现.从这个意义上来看,1-N(实际上还包括N ...
- Hibernate的关联映射——单向1-1关联
Hibernate的关联映射--单向1-1关联 对于单向的1-1关联关系,需要在持久化类里增加代表关联实体的成员变量,并为该成员变量添加setter方法和getter方法.从持久化类的代码上看,单向1 ...
- Hibernate的关联映射——单向N-1关联
Hibernate的关联映射--单向N-1关联 N-1是非常常见的关联关系,最常见的父子关系也是N-1关联,单向的N-1关联只需从N的一端可以访问1的一端. 为了让两个持久化类能够支持这种关联映射,程 ...
- Hibernate之关联映射(一对多和多对一映射,多对多映射)
~~~接着之前的Hibernate框架接着学习(上篇面试过后发现真的需要学习以下框架了,不然又被忽悠让去培训.)~~~ 1:Hibernate的关联映射,存在一对多和多对一映射,多对多映射: 1.1: ...
随机推荐
- 自己实现多线程的socket,socketserver源码剖析
1,IO多路复用 三种多路复用的机制:select.poll.epoll 用的多的两个:select和epoll 简单的说就是:1,select和poll所有平台都支持,epoll只有linux支持2 ...
- JavaScript校验图片格式及大小
<!DOCTYPE html> <html> <head> <title>JavaScript校验图片格式及大小</title> <s ...
- XidianOJ 1195 Industry of Orz Pandas
--正文 贪心 排序好慢慢找就好 #include <iostream> #include <cstring> #include <cstdio> #include ...
- SpringBoot-Learning
SpringBoot-Learning 本项目内容为Spring Boot教程程序样例. 作者博客:http://blog.didispace.com Spring Boot系列博文:http://b ...
- Delphi 获取临时数据集 ClientDataSet
function GetcdsAccountsData: OleVariant; var ASQLQuery: TSQLQuery; Adsp: TProvider; begin ASQLQuery: ...
- sort详解2
linux sort 命令详解 sort是在Linux里非常常用的一个命令,管排序的,集中精力,五分钟搞定sort,现在开始! 1 sort的工作原理 sort将文件的每一行作为一个单位,相互比较,比 ...
- IOS学习之路--OC的基础知识
1.项目经验 2.基础问题 3.指南认识 4.解决思路 ios开发三大块: 1.Oc基础 2.CocoaTouch框架 3.Xcode使用 -------------------- CocoaTouc ...
- iOS开发 代码 或 <Home+Power>截屏
1. 截屏的两种简单方法, 注意这两种截图方法,都必须在视图完全加载完成后才能截图,即在 viewDidAppear 方法之后截屏,否则无法得到想要的截屏效果 (1) 利用绘图方法 renderI ...
- python install_opener用法
opener:当你获取一个URL时,你使用一个opener(OpenerDirector).正常情况下我们一直使用默认的opener,通过urlopen,但你也可以创建自定义的openers. url ...
- node npm 安装模块 淘宝镜像
npm --registry https://registry.npm.taobao.org info underscore