Hibernate 3 one-to-many relationship mapping

Discussion in 'Java' started by Piotre Ugrumov, Jun 16, 2009.

  1. Hi,
    I have this 2 tables:


    TABLE TPS16_CONFIGURATION
    ( **TPS16_NAME**, TPS16_VALID_FROM_DATE, TPS16_OPERATING_RANGE_HI,
    TPS16_OPERATING_RANGE_LO,
    TPS16_MAX_OPERATING_DELTA, TPS16_TIME_GRID_PROTOTYPE)



    TPS25_CURRENCIES_DIFFMIN
    ( **TPS16_ID, TPS25_ISO_CURRENCY**, TPS25_DIFF_MIN
    )


    I signed with * keys of the tables.
    There is a foreign key in the table TPS25_CURRENCIES_DIFFMIN in fact
    TPS16_ID refers to TPS16_CONFIGURATION(TPS16_NAME).

    Now I have a problem of mapping.
    The object EConfiguration maps the table TPS16_CONFIGURATION in this
    way:

    <?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.intesasanpaolo.tps.model.EConfiguration"
    table="TPS16_CONFIGURATION" catalog="@CATALOG@" mutable="true">
    <comment></comment>
    <id name="name" type="string" column="TPS16_NAME"
    access="field">
    </id>

    <property name="validFrom" type="java.util.Date">
    <column name="TPS16_VALID_FROM_DATE" not-null="false" />
    </property>

    <property name="operatingRangeHigh" type="java.math.BigDecimal">
    <column name="TPS16_OPERATING_RANGE_HI" not-null="false" />
    </property>

    <property name="operatingRangeLow" type="java.math.BigDecimal">
    <column name="TPS16_OPERATING_RANGE_LO" not-null="false" />
    </property>

    <property name="maxOperatingDelta" type="java.math.BigDecimal">
    <column name="TPS16_MAX_OPERATING_DELTA" not-null="false" />
    </property>

    <many-to-one name="timeGridPrototype"
    column="TPS16_TIME_GRID_PROTOTYPE"
    unique="false" not-null="false" fetch="join" cascade="all">
    </many-to-one>

    <list name="internalPortfolios" cascade="all"
    table="TPS17_INTERNAL_PORTFOLIO" catalog="@CATALOG@" lazy="false">
    <key column="TPS16_ID"/>
    <index column="TPS16_IDX"/>
    <element column="TPS17_NAME" type="string"/>
    </list>

    <list name="externalPortfolios" cascade="all"
    table="TPS18_EXTERNAL_PORTFOLIO" catalog="@CATALOG@" lazy="false">
    <key column="TPS16_ID"/>
    <index column="TPS16_IDX"/>
    <element column="TPS18_NAME" type="string"/>
    </list>

    <list name="internalCounterparts" cascade="all"
    table="TPS19_INTERNAL_COUNTERPART" catalog="@CATALOG@" lazy="false">
    <key column="TPS16_ID"/>
    <index column="TPS16_IDX"/>
    <element column="TPS19_NAME" type="string"/>
    </list>

    <list name="externalCounterparts" cascade="all"
    table="TPS20_EXTERNAL_COUNTERPART" catalog="@CATALOG@" lazy="false">
    <key column="TPS16_ID"/>
    <index column="TPS16_IDX"/>
    <element column="TPS20_NAME" type="string"/>
    </list>

    <set name="currenciesDiffMin" lazy="true" inverse="true"
    cascade="all-delete-orphan">
    <key column="TPS16_ID"/>
    <one-to-many
    class="com.intesasanpaolo.tps.model.ECurrenciesDiffmin"/>
    </set>

    </class>
    </hibernate-mapping>



    The object ECurrenciesDiffmin maps the table TPS25_CURRENCIES_DIFFMIN
    in this way:

    <?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.intesasanpaolo.tps.model.ECurrenciesDiffmin"
    table="TPS25_CURRENCIES_DIFFMIN" catalog="@CATALOG@" mutable="true">
    <comment>Oggetto hibernate che mappa la tabella
    TPS25_CURRENCIES_DIFFMIN</comment>

    <composite-id>
    <key-many-to-one name="configuration" column="TPS16_NAME" ></key-
    many-to-one>
    <key-property name="currency" type="string">
    <column name="TPS25_ISO_CURRENCY"></column>
    </key-property>
    </composite-id>

    <property name="diffMin" type="double">
    <column name="TPS25_DIFF_MIN" not-null="false" />
    </property>

    </class>
    </hibernate-mapping>


    So I have the classes that maps the table in this way:


    public class EConfiguration {
    protected String name;
    private Date validFrom;
    private ETimeGridConfiguration timeGridPrototype;
    private List externalPortfolios;
    private List internalPortfolios;
    private List externalCounterparts;
    private List internalCounterparts;
    private BigDecimal operatingRangeHigh;
    private BigDecimal operatingRangeLow;
    private BigDecimal maxOperatingDelta;
    private Set currenciesDiffMin;


    public Set getCurrenciesDiffMin() {
    return currenciesDiffMin;
    }
    public void setCurrenciesDiffMin(Set currenciesDiffMin) {
    this.currenciesDiffMin = currenciesDiffMin;
    }
    protected EConfiguration() {}
    public EConfiguration(String name) {
    this.name = name;
    }
    /**
    * Configuration name
    * @return The name of the configuration
    */
    public String getName() {
    return name;
    }
    /**
    * Validity date
    * @return The first date for which this configuration is valid
    */
    public Date getValidFrom() {
    return validFrom;
    }
    public void setValidFrom(Date validFrom) {
    this.validFrom = validFrom;
    }
    /**
    * Time grid prototype
    * @return A {@link ETimeGridConfiguration} object
    */
    public ETimeGridConfiguration getTimeGridPrototype() {
    return timeGridPrototype;
    }
    public void setTimeGridPrototype(ETimeGridConfiguration
    timeGridPrototype) {
    this.timeGridPrototype = timeGridPrototype;
    }
    /**
    * External deal portfolios that must be used for this hedging
    process
    * @return A List of String representing the names of the portfolios
    */
    public List getExternalPortfolios() {
    return externalPortfolios;
    }
    public void setExternalPortfolios(List externalPortfolios) {
    this.externalPortfolios = externalPortfolios;
    }
    /**
    * Internal deal portfolios that must be hedged by this hedging
    process
    * @return A List of String representing the names of the portfolios
    */
    public List getInternalPortfolios() {
    return internalPortfolios;
    }
    public void setInternalPortfolios(List internalPortfolios) {
    this.internalPortfolios = internalPortfolios;
    }
    /**
    * External deal counterparts that must be used for this hedging
    process
    * @return A List of String representing the names of the
    counterparts
    */
    public List getExternalCounterparts() {
    return externalCounterparts;
    }
    public void setExternalCounterparts(List externalCounterparts) {
    this.externalCounterparts = externalCounterparts;
    }
    /**
    * Internal deal counterparts that must be hedged by this hedging
    process
    * @return A List of String representing the names of the
    counterparts
    */
    public List getInternalCounterparts() {
    return internalCounterparts;
    }
    public void setInternalCounterparts(List internalCounterparts) {
    this.internalCounterparts = internalCounterparts;
    }
    /**
    * High limit of hedging ratio
    * @return A BigDecimal representing a hedge/risk ratio
    */
    public BigDecimal getOperatingRangeHigh() {
    return operatingRangeHigh;
    }
    public void setOperatingRangeHigh(BigDecimal operatingRangeHigh) {
    this.operatingRangeHigh = operatingRangeHigh;
    }
    /**
    * Low limit of hedging ratio
    * @return A BigDecimal representing a hedge/risk ratio
    */
    public BigDecimal getOperatingRangeLow() {
    return operatingRangeLow;
    }
    public void setOperatingRangeLow(BigDecimal operatingRangeLow) {
    this.operatingRangeLow = operatingRangeLow;
    }
    /**
    * Absolute value of the maximum risk amount that can exceed hedging
    for every time bucket
    * @return A BigDecimal representing an amount
    */
    public BigDecimal getMaxOperatingDelta() {
    return maxOperatingDelta;
    }
    public void setMaxOperatingDelta(BigDecimal maxOperatingDelta) {
    this.maxOperatingDelta = maxOperatingDelta;
    }
    public void setName(String name) {
    this.name = name;
    }
    }



    and


    public class ECurrenciesDiffmin {

    private EConfiguration configuration;
    private String currency;
    private double diffMin;

    public ECurrenciesDiffmin() {
    super();
    }

    public ECurrenciesDiffmin(EConfiguration configuration, String
    currency, double diffMin) {
    super();
    this.configuration = configuration;
    this.currency = currency;
    this.diffMin = diffMin;
    }
    public EConfiguration getConfiguration() {
    return configuration;
    }
    public void setConfiguration(EConfiguration configuration) {
    this.configuration = configuration;
    }
    public String getCurrency() {
    return currency;
    }
    public void setCurrency(String currency) {
    this.currency = currency;
    }
    public double getDiffMin() {
    return diffMin;
    }
    public void setDiffMin(double diffMin) {
    this.diffMin = diffMin;
    }

    }

    This mapping does not work and I do not understand why, can someone
    help me?
    Where do I make a mistake?
    How can I solve?
    Thanks, bye bye.
     
    Piotre Ugrumov, Jun 16, 2009
    #1
    1. Advertising

Want to reply to this thread or ask your own question?

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Marco Ippolito
    Replies:
    0
    Views:
    2,587
    Marco Ippolito
    Oct 11, 2004
  2. Mirko
    Replies:
    0
    Views:
    2,304
    Mirko
    Oct 12, 2006
  3. Michael Plate

    question to many-to-many of hibernate

    Michael Plate, May 8, 2007, in forum: Java
    Replies:
    0
    Views:
    356
    Michael Plate
    May 8, 2007
  4. Sachin
    Replies:
    1
    Views:
    789
    Daniel Pitts
    Jul 7, 2008
  5. Jim Thomason
    Replies:
    3
    Views:
    162
    Topmind
    Oct 2, 2004
Loading...

Share This Page