Hibernate-hbml.xml-单向集-一对多

问题描述 投票:0回答:1

大家好,感谢您的阅读,

我有以下问题:

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

{

所以,就像是单向关系一样,我不在乎在OutlayType上有一个Complex字段。

在数据库中,我有以下内容:

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

有什么想法吗?谢谢

hibernate set one-to-many hbmxml mappingexception
1个回答
0
投票

我的问题是,我将核心的一部分作为库导入到另一个应用程序中。并且Application.yml文件被重新加载而没有OutlayType.hbm.xml。

© www.soinside.com 2019 - 2024. All rights reserved.