0

こんにちは、読んでくれてありがとう。

次の問題があります。

org.hibernate.boot.MappingException: 関連付け [com....core.complex.domain.Complex.outlayTypes] は、マップされていないエンティティ [com....core.complex.domain.Complex.outlayTypes] を参照しています

昨日からこれを修正しようとしてきましたが、何が問題なのかわかりません。また、公式の休止状態ページ ( https://docs.jboss.org/hibernate/orm/5.4/userguide/html_single/Hibernate_User_Guide.html#collections-set )に xml ドキュメントがない理由がわかりません。

システムの設計方法のために、xml 構成を使用したいと考えています。

だから、私は2つのエンティティを持っています:

複合 (1 --- N) OutlayType

public class Complex extends AggregateRoot {

    private ComplexId id;
    ...
    private Set<OutlayType> outlayTypes;

    constructors

    getters and setters

    public Set<OutlayType> getOutlayTypes() { return outlayTypes; }

    public void setOutlayTypes(Set<OutlayType> outlayTypes) { this.outlayTypes = outlayTypes; }

}



public class OutlayType {

    OutlayTypeId id;
    ...

    constructors

    getters and setters

{

つまり、like は一方向の関係なので、OutlayType に Complex フィールドを設定する必要はありません。

DBには次のものがあります。

CREATE TABLE `complex` (
  `id` varchar(36) NOT NULL,
   ...
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


CREATE TABLE `outlay_type` (
  `id` varchar(36) NOT NULL,
  ...
  `complex_id` varchar(36) DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

これは、Complex.hbm.xml ファイル内の私の hbm.xml 構成です。

<hibernate-mapping>
    <class name="com....core.complex.domain.Complex" table="complex">
        <composite-id name="id" class="com....core.complex.domain.valueobject.ComplexId" access="field">
            <key-property column="id" name="value" length="36" access="field" />
        </composite-id>


        <set name="outlayTypes" cascade="all">
            <key>
                <column name="complex_id" not-null="true" />
            </key>
            <one-to-many class="com....core.complex.domain.OutlayType" />
        </set>
    </class>
</hibernate-mapping>

繰り返しますが、単方向の関係であるため、OutlayType.hbm.xml にマッピングはありません。

次のような多くのチュートリアルを確認しました: https://www.tutorialspoint.com/hibernate/hibernate_set_mapping.htm

しかし、これが機能しない理由がわかりません。

org.hibernate.boot.MappingException: 関連付け [com....core.complex.domain.Complex.outlayTypes] は、マップされていないエンティティ [com....core.complex.domain.Complex.outlayTypes] を参照しています

何か案は?ありがとう

4

1 に答える 1