xml - 来自 SQL 查询的休眠映射文件
问题描述
在搜索 SO 和 hibernate 文档后,我似乎找不到我的问题的答案(?)。每个答案都会对我的问题有所帮助,在这里。
我是休眠 hbm.xml 映射文件的新手,我的任务是使用 hbm.xml 输出涉及许多表、连接、计数等的非常大而复杂的查询。
HQL 代码已经完成并正在运行,除非要求新的函数/方法,否则我无法访问它,我可以使用每个表的 hbm.xml 映射来打印所有表,例如:
表 1.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、sys和cod的列,它来自 table1,它位于 DB 上。到目前为止一切顺利,我也可以打印多对一,组合来自两个不同表的列并打印描述,例如(表 2 中的列和表 1 中的 PK)。
问题是当我需要连接表并使用各种表和它们之间的关系打印更复杂的查询时。
我的问题是:我可以使用已经完成的 SQL 查询并生成 hbm 文件吗?
例如,我是否需要一个 hbm 文件来左连接表,然后调用该文件(结果)。
我很抱歉这个模糊的问题,我也很困惑。
我可以发布我想要/需要映射的查询之一,映射所有表。
解决方案
好的,我找到了解决方案,对于遇到此问题的其他人,我建议您从所有复杂查询中创建数据库视图,然后将该视图中的结果列和类型映射到 hibernate hbm.xml。
这样就不需要在 .hbm 文件中添加复杂的基数了。
推荐阅读
- mysql - MySQL JOIN 使用任一 NON-NULL 列来引用另一个表
- python - 如何从 Python 中的列表中隔离值?
- html - 如何在带有烧瓶的表单中的输入类型收音机中插入“已检查”
- python - 如何从 Azure Key Vault 中的证书获取私钥?
- javascript - 如何将 Kaggle 数据集添加到弹性搜索中?
- apache-spark - 有没有办法列出数据湖中所有文件夹和子文件夹中的所有文件?
- node.js - 无法在 Angular 应用程序上正确获取 GridFS 图像
- docker - GitLab CI 中的灯塔
- javascript - 打字稿 - 类型“字符串”不可分配给类型“布尔”
- duplicates - 我在 Pymel 代码中旋转对象时遇到问题