отображение сущностей: преобразование из hbm.xml в orm.xml, пропущенные поля и атрибуты - PullRequest
2 голосов
/ 22 декабря 2011

Я новичок в hibernate, и я должен преобразовать Entity Mapping в приложении из hbm.xml в orm.xml.Моя проблема в том, что мне не хватает некоторых полей и атрибутов для правильного преобразования.

это hbm.xml, который я пытаюсь преобразовать:

<hibernate-mapping package="server.model.history">

    <typedef name="outputType" class="org.hibernate.type.EnumType">
        <param name="enumClass">server.model.history.OutputType</param>
        <!-- Hibernate type '4' means Integer -->
        <param name="type">4</param>
    </typedef>

    <class name="ProcessOutput" table="PROCESS_OUTPUT" mutable="false">

        <id name="id" column="ID" type="server.model.id.hibernate.ProcessOutputIdUserType" access="field">
            <generator class="info.novatec.np.server.model.id.hibernate.CustomGenerator" />
        </id> 

        <discriminator column="HOST_KIND" type="string"/>

        <version name="version"
                 access="field" 
                 column="VERSION" 
                 type="integer"/>

        <property name="sequence" column="SEQUENCE" type="integer" not-null="true" unique-key="UNIQUE_SEQUENCE_CREATED_PROCESSID" access="field"/>

        <list name="variables" table="HOST_VARIABLE" cascade="all">
            <key column="FK_HOST_ID"/>
            <list-index column="INDEX" />
            <composite-element class="server.model.SimpleKeyValuePair">
                <property name="key" access="field" column="KEY" type="string" not-null="true" />
                <property name="value" access="field" column="VALUE" type="string"/>
            </composite-element>
        </list>

        <many-to-one name="process" class="ProcessStep" column="FK_PROCESS_ID" not-null="true" unique-key="UNIQUE_SEQUENCE_CREATED_PROCESSID" access="field" index="OUTPUT_FOREIGNKEY_INDEX" />

    </class>
</hibernate-mapping>

и вот как я конвертируюпока что это в orm.xml:

<entity-mappings xmlns="http://java.sun.com/xml/ns/persistence/orm"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:schemaLocation="http://java.sun.com/xml/ns/persistence/orm http://java.sun.com/xml/ns/persistence/orm_1_0.xsd"
    version="1.0">

    <package>info.novatec.np.server.model.history</package>

    <entity class="ProcessOutput">
        <table name="PROCESS_OUTPUT" />

        <attributes>
            <id name="id"> 
                <column name="ID" />
            </id>

       <version name="version" ><column name="VERSION"/></version>

            <basic name="sequence">
                <column name="SEQUENCE" nullable="false"/>
            </basic>

            <many-to-one name="process" ></many-to-one>

        </attributes>
    </entity>
</entity-mappings>

, поскольку вы можете видеть, что оно неполное, лоскутное и частично неверное.Как я могу написать id_type id_access и генератор класса в orm.xml ??

Я также не нашел ничего эквивалентного свойству уникальный ключ-ключ, тип и индекс многие-к-одному, а как насчет дискриминатораи typedef name = "..." class = "..." param ... /> ... /> ??

Я был бы благодарен, и это было бы здорово для любой помощи.

...