来自 SQL 个查询的 Hibernate 映射文件

Hibernate mapping files from SQL queries

在搜索 SO 和休眠文档后,我似乎无法找到我的问题的答案(?)。每个答案都会对我的问题有所帮助,就在这里。

我是休眠 hbm.xml 映射文件的新手,我的任务是输出非常大且复杂的查询,涉及许多 tables、连接、计数等,hbm.xml.

HQL 代码已经完成 运行,除非要求新的功能/方法,否则我无法访问它,我可以使用和 [=37= 打印所有 table ] 为每个映射,例如:

table1.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 name="authorization.model.table1" table="table1">
    <composite-id>
      <key-property name="Id" type="long" column="Id" />
      <key-property name="Sys" type="string" column="Sys" />
    </composite-id>
    <property name="Cod" column="Cod" type="long" />
  </class>
</hibernate-mapping>

结合我的输出代码将打印一个列 id,syscod from table1 wich is在数据库上。 到目前为止一切顺利,我也可以打印多对一,组合来自两个不同 table 的列并打印描述(例如 table2 的列和 table1 的 PK)。

问题是当我需要加入 tables 并使用各种 tables 和它们之间的关系打印更复杂的查询时。

我的问题是:我可以使用已经完成的 SQL 查询并生成 hbm 文件吗?

例如,我需要一个 hbm 文件来左连接 tables,然后调用该文件(结果)。

不好意思问的含糊不清,我也很困惑。

我可以 post 我 want/need 映射的查询之一,映射了所有 tables。

好的,我找到了解决方案,对于遇到此问题的其他人,我建议您从所有复杂查询创建一个数据库视图,然后将结果列和类型从该视图映射到休眠 hbm.xml。

这样就不需要将复杂的基数放入 .hbm 文件中。