栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

如何用源代码编写hbm.xml文件中的此SQL查询?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

如何用源代码编写hbm.xml文件中的此SQL查询?

找不到

address
列的两个可能原因:

首先,在SQL中,您必须编写表的名称,而不是实体名称。

其次,您的JOIN语句在SQL上可能无效。有几种方法可以实现联接。我将采用直接方法(从两个表中进行选择,并在where子句中说明联接)。

假设该

person
实体映射了一个名为“
TABLE_PERSON
”的表,并
address
映射了“
TABLE_ADDRESS
”表,则有效查询如下所示:

SELECt person.NAME, person.AGE, person.SEX,      address.STREET, address.CITY, address.STATE, address.ZIP FROM TABLE_PERSON person, TABLE_ADDRESS address WHERe person.ID = address.PERSON_ID

还有一点。查看休眠文档,我发现了以下示例:

List cats = sess.createSQLQuery("select {cat.*}, {kitten.*} from cats cat, cats kitten where kitten.mother = cat.id").     setResultSetMapping("catAndKitten").list();

因此,问题可能不在于查询本身,而在于您正在使用的resultSet映射以及引用字段的方式。

让我们假设这个映射(来自Hibernate文档):

<resultset name="personAddress">    <return alias="person" />    <return-join alias="address" property="person.mailingAddress"/></resultset>

然后,例如,您的查询应定义大括号(

{}
)之间的列,并使用您在映射处定义的别名:

personList = session.createSQLQuery(  "SELECt {person.NAME}, {person.AGE}, {person.SEX}, "+ "{address.STREET}, {address.CITY}, {address.STATE}, {address.ZIP} "+ "FROM TABLE_PERSON person, TABLE_ADDRESS address " "WHERe person.ID = address.PERSON_ID"        ).setResultSetMapping("personAddress")         .list();

请告诉我这个例子是否可行。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/623850.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号