使用多个表和本机SQL进行Hibernate映射

使用多个表和本机SQL进行Hibernate映射,hibernate,hibernate-mapping,hbmxml,Hibernate,Hibernate Mapping,Hbmxml,对于如何在Hibernate中为映射生成hbm.xml文件,我有一些疑问。映射在多个表中具有字段的Java对象时会出现问题 我们使用的自定义框架要求每个对象都有一个hbm.xml文件,但在本例中,它的字段位于三个表中,因此我想进行一个本机SQL查询(上面的另一个要求),并将结果中的字段值移动到Hibernate映射文件中描述的新对象上 我的hibernate映射文件类似于: <hibernate-mapping> <class name="com.mycompany.mypro

对于如何在Hibernate中为映射生成hbm.xml文件,我有一些疑问。映射在多个表中具有字段的Java对象时会出现问题

我们使用的自定义框架要求每个对象都有一个hbm.xml文件,但在本例中,它的字段位于三个表中,因此我想进行一个本机SQL查询(上面的另一个要求),并将结果中的字段值移动到Hibernate映射文件中描述的新对象上

我的hibernate映射文件类似于:

<hibernate-mapping>
<class name="com.mycompany.myproject.model.scommons.companhiaalmacen.CompanhiaAlmacen" table="COMPANHIA_ALMACEN">
    <id name="companyWarehouseId" type="java.lang.Integer" access="field">
        <column name="ID_EMPRESA_NAVE" />
        <generator class="assigned" />
    </id>
    <property name="companyId" type="java.lang.Integer">
        <column name="ID_EMPRESA" />
    </property>
    <property name="warehouseDCId" type="java.lang.Integer">
        <column name="ID_CENTRO_DISTRIBUCION_NAVE" />
    </property>

    <!-- HERE: This attribute NOMBRE_COMERCIAL belongs not only to another table (EMPRESA) -->
    <!-- but also to another schema (GENERAL) as well -->
    <property name="name" type="java.lang.String">
        <column name="NOMBRE_COMERCIAL" />
    </property>

    <property name="creationDate" type="java.util.Date">
        <column name="FECHA_ALTA" />
    </property>
    <property name="creationUser" type="java.lang.String">
        <column name="USUARIO_ALTA" />
    </property>
</class>
</hibernate-mapping>

我不知道如何在不做一个或多个的情况下做这个。我不希望Hibernate检索对象及其映射的实体,因为我想从自己的db2查询中获取它

有人知道怎么做吗?我在哪里可以找到这个?(我已经在HibernateAPI中查找了SQLQuery,只是我没有得到的映射)


提前感谢。

您可以根据Hibernate中的要求覆盖任何CRUD语句。见下文第18.3节和第18.4节:

还可以通过表定义的schema属性将实体映射到多个表,并在多个模式中拥有表,因此这可能是一种更好的方法

见下文第2.2.7节:

下面显示的辅助表可以位于另一个架构中:

这些注释将有XML等价物