代码之家  ›  专栏  ›  技术社区  ›  black sensei

冬眠单向的一对多,我有点困惑

  •  0
  • black sensei  · 技术社区  · 16 年前

    你好,伙计们,如果你觉得这个问题很愚蠢,很抱歉。 我有3个表:货币(ID名称)语言(ID名称描述)交易(ID金额语言ID货币ID)

    因此,我希望插入到事务中,但要确保它不会插入未知的语言或货币(这意味着如果没有现有的父语言和货币,则不应插入到messagetemplate)

    这是我的映射文件

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="com.myproject.model">
     <class name="Transaction" table="transaction">
      <id name="id">
        <generator class="native"/>
      </id>
      <property column="amount" name="amount" type="String"/>
      <many-to-one class="CurrencyImpl" column="currency" name="currency"/>
      <many-to-one class="LanguageImpl" column="language" name="language"/>
     </class>
    </hibernate-mapping>
    
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="com.myproject.model">
      <class name="Currency" table="currency">
       <id name="id">
        <generator class="native"/>
       </id>
       <property column="currency_name" name="name" type="String"/>
      </class>
    </hibernate-mapping>
    
    
    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
    <hibernate-mapping package="com.myproject.model">
     <class name="Language" table="language">
      <id name="id">
        <generator class="native"/>
      </id>
      <property column="language_name" name="name" type="String"/>
      <property column="language_description" name="description" type="String"/>
     </class>
    </hibernate-mapping>
    

    在当前的映射中,情况似乎并非如此。如何实现这一点?谢谢你的阅读

    1 回复  |  直到 16 年前
        1
  •  1
  •   Jherico    16 年前

    您有多对一引用currencyimpl和languageimpl,但这些类没有映射,只有(可能对应的)接口。我建议您首先只创建和映射具体的类,并在尝试处理映射接口之前使其正常工作。