Mapowanie relacji jeden do wiele w pliku hbm.xml

0

Witam

Chciałbym poprosić o pomoc w mapowaniu relacji jeden do wiele przez hibernate.

Kompilacja zgłasza błędy:
"
...
INFO: Reading mappings from resource : model/Sperson.hbm.xml
2012-06-23 00:45:17 org.hibernate.util.XMLHelper$ErrorLogger error
SEVERE: Error parsing XML: XML InputStream(17) Attribute "precision" must be declared for element type "key".
2012-06-23 00:45:17 org.hibernate.util.XMLHelper$ErrorLogger error
SEVERE: Error parsing XML: XML InputStream(17) Attribute "scale" must be declared for element type "key".
Initial SessionFactory creation failed.org.hibernate.InvalidMappingException: Could not parse mapping document from resource model/Sperson.hbm.xml
Exception in thread "main" java.lang.ExceptionInInitializerError
at utils.HibernateUtil.<clinit>(HibernateUtil.java:28)
at hibapplication2.Main.main(Main.java:35)
...
"

Tabele nie są tworzone w bazie.

Oto pliki:
Sperson.hbm.xml

<?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>
  <!--<class dynamic-insert="false" dynamic-update="false" mutable="true" name="model.Sperson" optimistic-lock="version" polymorphism="implicit" select-before-update="false"/>-->
    <class name="model.Sperson" table="SPERSON" schema="HR" dynamic-update="true" dynamic-insert="true" select-before-update="false">
        <id name="id" type="long">
            <column name="ID" precision="10" scale="0" />
            <generator class="native" />
        </id>
       <property name="fname" type="string">
           <column name="FNAME" length="10" />
       </property>
       <property name="lname" type="string" >
           <column name="LNAME" length="10" />
       </property>
       <set name="scredentials" cascade="all" inverse="true">
            <key column="ID_SPERSON" precision="10" scale="0" not-null="true" />
            <one-to-many class="model.Scredential"/>
        </set>
    </class>
</hibernate-mapping>

i plik scredential.hbm.xml

<?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>
  <!--<class dynamic-insert="false" dynamic-update="false" mutable="true" name="model.Scredential" optimistic-lock="version" polymorphism="implicit" select-before-update="false"/>-->
<class name="model.Scredential" table="SCREDENTIAL" schema="HR">
    <id name="id" type="long" column="ID">
        <generator class="native" />
    </id>
    <property name="login" type="string">
        <column name="LOGIN" length="10" />
    </property>
    <property name="pass" type="string">
        <column name="PASS" length="10" />
    </property>
    <many-to-one name="sperson" class="Sperson" not-null="false" column="ID_SPERSON"/>
    </many-to-one>
</class>
</hibernate-mapping>

Model relacji:

4progRelacja.png

Pozdrawiam

0

powinno być tak:

 
<key>
  <column column="ID_SPERSON" precision="10" scale="0" not-null="true"/>
</key>

jak używasz edytora są tam podpowiedzi

0

Działa, dzięki ;-)

1 użytkowników online, w tym zalogowanych: 0, gości: 1