在搜索SO和休眠文档之后,我似乎找不到我的问题的答案(?)。每个答案都会对我的问题有所帮助,就在这里。
我是休眠hbm.xml映射文件的新手,我的任务是使用hbm.xml输出涉及许多表,联接,计数等的真正大而复杂的查询。
HQL代码已经完成并正在运行,除非请求新功能/方法,否则我无法访问它,我可以使用和hbm.xml映射为每个表打印所有表,例如:
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>
结合我的输出代码的将从DB1的table1中打印一个列,其中包含 id,sys 和 cod 。 到目前为止,到目前为止,我还可以将多张一张打印成一张,将两个不同表中的列组合起来并打印说明(例如,表2中的列和表1中的PK)。
问题是当我需要联接表并使用各种表及其之间的关系打印更复杂的查询时。
我的问题是:我可以使用已经完成的SQL查询并生成hbm文件吗?
例如,我是否需要一个hbm文件来保留联接表,然后调用该文件(结果)。
我为这个模糊的问题感到抱歉,我也感到困惑。
我可以发布要映射的查询之一,并映射所有表。
答案 0 :(得分:0)
好吧,我找到了一个解决方案,对于其他有这个问题的人,我建议您从所有复杂的查询创建一个到数据库的视图,然后将该视图的结果列和类型映射到hibernate hbm.xml中。
因此,无需对.hbm文件进行复杂的基数处理。