<?xml version="1.0"?>
<!DOCTYPE hibernate-mapping PUBLIC
"-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
<class name="com.citigroup.cib.marx.curve.CDSCurveDefinition"
table="instrument" lazy="false"><!--cds_curve where="status='ok'"-->
<id name="curveId" column="instrument_id" type="integer">
<generator class="assigned" />
</id>
<many-to-one name="instrumentType" column="instrument_code"
class="com.citigroup.cib.marx.curve.InstrumentType" lazy="false"/>
<property name="instrumentDetails" column="instrument_details"
type="com.citigroup.cib.marx.persistence.util.TrimmedString" />
<many-to-one name="owner" column="owner_code"
class="com.citigroup.cib.marx.businessOrg.Desk" lazy="false" />
<property name="status" column="status"
type="com.citigroup.cib.marx.persistence.util.TrimmedString" />
<property name="enteredDate" column="entered_date" />
<property name="enteredUser" column="entered_user"
type="com.citigroup.cib.marx.persistence.util.TrimmedString" />
<set name="levels" cascade="all" inverse="true"
collection-type="com.citigroup.cib.marx.levels.collections.LevelCollectionType">
<key column="instrument_id" />
<one-to-many class="com.citigroup.cib.marx.levels.CDSLevel" />
</set>
<join table="cds_instrument" optional="false">
<key column="instrument_id"/>
<many-to-one name="referenceEntity" column="issuer_id" fetch="join"
lazy="false"
class="com.citigroup.cib.marx.referenceData.MarxReferenceEntity" />
<many-to-one name="subord" lazy="false"
class="com.citigroup.cib.marx.referenceData.Tier" />
<many-to-one name="currency" lazy="false"
class="com.citigroup.cib.marx.shared.Currency" />
<many-to-one name="source" column="source" lazy="false"
class="com.citigroup.cib.marx.referenceData.Source" />
<many-to-one name="type" lazy="false"
class="com.citigroup.cib.marx.curve.CurveType" />
<property name="curve" column="external_name"
type="com.citigroup.cib.marx.persistence.util.TrimmedString" />
<!-- <property name="recovery" /> -->
<property name="path"
type="com.citigroup.cib.marx.persistence.util.TrimmedString" />
<property name="creditEntityId" column="credit_entity_id" />
<property name="inactiveDate" column="inactive_date" />
<property name="shortCode" column="short_code"
type="com.citigroup.cib.marx.persistence.util.TrimmedString" />
<many-to-one name="rollType" column="roll_type"
class="com.citigroup.cib.marx.referenceData.RollType" lazy="false"/>
<property name="maturityDate" column="maturity_date" />
<property name="keyVersion" column="keyversion" />
<property name="active" column="isActive" type="boolean"/>
<property name="stale" column="isStale" type="boolean"/>
<property name="defaulted" column="isDefaulted" type="boolean"/>
<property name="clearingEligible" column="isClearingEligible" type="boolean"/>
<property name="defaultDate" column="defaultDate" />
<property name="noticeDate" column="noticeDate" />
<property name="settlementDate" column="settlementDate" />
<many-to-one name="docClause" column="doc_clause" class="com.citigroup.cib.marx.curve.DocClause" lazy="false"/>
<many-to-one name="txnTypeCurveExt" column="transaction_type" class="com.citigroup.cib.marx.referenceData.ReferenceEntityTxnType" lazy="false"/>
<property name="cdsStatus" column="status"
type="com.citigroup.cib.marx.persistence.util.TrimmedString" />
<property name="cdsEnteredDate" column="entered_date" />
<property name="cdsEnteredUser" column="entered_user"
type="com.citigroup.cib.marx.persistence.util.TrimmedString" />
</join>
<join table="curve_rules" optional="true">
<key column="pr_curve_id" />
<many-to-one name="refCurve" column="ref_curve_id" cascade="save-update"
lazy="false"
class="com.citigroup.cib.marx.curve.CDSCurveDefinition" />
<property name="rulesType" column="type" type="com.citigroup.cib.marx.persistence.util.TrimmedString"/>
<property name="rulesIssuerId" column="issuer_id" type="integer"/>
<property name="rulesCurrency" column="currency" type="com.citigroup.cib.marx.persistence.util.TrimmedString"/>
<property name="rulesSubord" column="subord" type="com.citigroup.cib.marx.persistence.util.TrimmedString"/>
<property name="rulesRefSource" column="ref_source" type="com.citigroup.cib.marx.persistence.util.TrimmedString"/>
<property name="defaultCurve" column="is_default" type="boolean"/>
<property name="rulesEnteredUser" column="entered_user" />
<property name="rulesEnteredDate" column="entered_date" />
</join>
<join table="blotter_curve" optional="true">
<key column="instrument_id"/>
<property name="bsecBloombergTicker3"
column="bloomberg_ticker3"
type="com.citigroup.cib.marx.persistence.util.TrimmedString"/>
<property name="bsecBloombergTicker"
column="bloomberg_ticker"
type="com.citigroup.cib.marx.persistence.util.TrimmedString"/>
<property name="bsecBloombergTicker7"
column="bloomberg_ticker7"
type="com.citigroup.cib.marx.persistence.util.TrimmedString"/>
<property name="bsecBloombergTicker10"
column="bloomberg_ticker10"
type="com.citigroup.cib.marx.persistence.util.TrimmedString"/>
<property name="bsecFlag" column="manifold_flag"/>
<property name="bsecComment" column="comment"
type="com.citigroup.cib.marx.persistence.util.TrimmedString"/>
<property name="bsecEnteredDate" column="entered_date"/>
<property name="bsecEnteredUser" column="entered_user"
type="com.citigroup.cib.marx.persistence.util.TrimmedString"/>
</join>
</class>
</hibernate-mapping>
分享到:
相关推荐
Hibernate支持主键关联(Primary Key Join)和外键关联(Unique Foreign Key Join)两种方式。主键关联是通过两个实体共享同一主键来实现,而外键关联则是通过在一方或双方创建一个指向另一方的外键字段。 4. **...
这通常通过在`<aop:config>`标签内添加`<aop:aspect>`标签来实现。在这里,你可以定义切面(Aspect),也就是包含通知(Advice)的类,通知是AOP中的核心概念,它们定义了在特定连接点(Join Point)执行的代码。 ...
- 使用`@ManyToMany`注解在两个实体类上,同时可能需要定义`@JoinTable`来指定中间表。 3. **数据库表设计** - 创建一个中间表,包含两个外键,分别对应两个实体的主键。 以上就是Hibernate中一对一、一对多和多...
- 在配置文件中预定义命名查询,如在`.hbm.xml`文件中的`<query>`标签,便于重复使用。 - 在查询中使用JOIN操作,例如`from Customer as customer join fetch customer.buySet`实现Eager Loading,一次性加载关联...
Hibernate提供了`<order-by>`和`<composite-element>`标签来实现集合元素的排序,以及`<bag>`集合类型来支持无序集合。对于复杂的数据结构,如嵌套集合,可以使用`<composite-element>`定义复合元素。 综上所述,...
例如,使用XML配置,我们可以在`<class>`标签下添加`<inheritance>`子标签,指定`strategy`属性为相应的继承策略。如果是使用注解,我们可以使用`@Inheritance`和`@Inheritance(strategy = InheritanceType.SINGLE_...
标题:“HIBERNATE检索策略” 描述:本文深入解析了HIBERNATE的检索策略,为读者提供了一条清晰的学习路径,重点分析了HIBERNATE中的抓取策略及其应用场景,帮助开发者更有效地管理和优化数据加载过程。 在...
- **延迟检索**:通过在`<class>`标签中设置`lazy="true"`来启用。该策略下,只有在真正需要访问关联对象时才进行查询。 - **关联级别检索策略**: - **立即检索**:`lazy="false"`且`outer-join="false"`。默认...
在Hibernate中,这种关系可以通过`<many-to-many>`标签来配置。我们需要创建两个实体类:`Student`和`Course`,并在它们之间建立关联。关联映射通常包含在实体类的映射文件或使用JPA注解中。 ```java @Entity ...
在Hibernate中,使用`<many-to-many>`标签,并通过`<join-table>`定义中间表。 5. 继承映射: Hibernate支持三种继承映射策略: - 单表继承(Single Table Inheritance):所有子类数据都存储在同一个表中,通过...
1. **XML配置**:在Hibernate的映射文件(.hbm.xml)中,使用`<list>`标签定义List集合映射。例如: ```xml ``` 这里的`name`属性指定了集合属性名,`table`是对应的数据库表名,`key`表示外键字段,`index...
在Hibernate中,多对多关系通过`<many-to-many>`标签来定义。当两个实体之间存在多对多关联时,通常需要一个额外的中间表来存储这两个实体的关联关系。例如,在用户角色的例子中,用户和角色之间的多对多关系可以...
在Hibernate配置文件中,我们通过`<element>`标签来指定元素的类型和字段映射。例如,如果集合元素是基本类型,我们可以直接映射;如果是复杂类型的对象,就需要指定对应的实体类。 3. **一对一(One-to-One)映射*...
如果使用XML配置,需要在User和Role的映射文件中添加对应的`<set>`标签来描述多对多关系。 **四、操作示例** 1. **添加数据** 可以通过Session的`save()`或`saveOrUpdate()`方法添加新的User和Role实例,Hibernate...
2. **集合映射配置**:在Hibernate的映射文件(.hbm.xml)中,我们需要为集合属性配置对应的标签。例如,对于List,我们可以使用`<list>`标签,对于Set使用`<set>`,对于Map使用`<map>`,并指定对应的键(key)和值...
“源码”标签意味着内容可能包含对Hibernate配置或Java代码的详细解释,可能涉及到XML映射文件或注解方式的代码示例。“工具”标签则暗示了讨论的是一个开发工具,即Hibernate,它是Java世界中用于数据库操作的重要...
"工具"标签则暗示了Hibernate作为一种工具在实际开发中的应用。 **文件名称列表解析:** "HibernateORM"可能是包含有关Hibernate ORM框架的详细信息的文件夹或压缩包,里面可能包含示例代码、教程文档或其他资源,...
在Hibernate中,可以通过`@JoinTable`注解定义这个中间表,包括它的名字、连接两个实体的外键等信息。 4. **关联维护**:双向关联需要在两个实体之间保持同步。添加、删除关联时,需要同时更新两个实体的相关集合。...
配置XML映射文件的方式也类似,只是需要在`<hibernate-mapping>`标签内定义两个实体的映射关系: ```xml <!-- User.hbm.xml --> <hibernate-mapping> <!-- 使用one-to-one标签声明一对一关联 --> </...
在这个通讯录系统中,我们需要了解如何定义Action类,配置struts.xml文件,以及如何利用Struts2的标签库来展示数据。 接着,SQL(结构化查询语言)是用于管理关系数据库的标准语言,它在这个项目中负责构建和操作...