1.常用情形:
xml 代码
- <sql-query name="articlesql">
- <return alias="articleList" class="cn.com.dreamtech.news.domain.JsAcArticle"/>
- select article.js_ac_art_id,article.js_ac_art_title from Js_Ac_Article as article left join Js_Ac_Catalog catalog on article.js_Ac_art_Catalog=catalog.js_Ac_Catalog_Id
- sql-query>
java 代码
- List list = session.getNamedQuery("articlesql").setString("articleId", "4028829316ccff530116ccffe53e0001").list();
- JsAcArticle article = (JsAcArticle)list.get(0);
- System.out.println(article.getJsAcArtTitle());
2.多表联合查询:
xml 代码
- <sql-query name="articlesql">
- <return-scalar type="java.lang.String" column="js_ac_art_id"/>
- <return-scalar type="java.lang.String" column="js_ac_catalog_title"/>
- select article.js_ac_art_id,catalog.js_ac_catalog_title from Js_Ac_Article as article left join Js_Ac_Catalog catalog on article.js_Ac_art_Catalog=catalog.js_Ac_Catalog_Id
- ]]>
- sql-query>
java 代码
- HibernateUtil.beginTransaction();
- Session session = HibernateUtil.currentSession();
- List list = session.getNamedQuery("articlesql").list();
- Object[] article = (Object[])list.get(0);
- System.out.println(article[0]);
3.自行添加类和hbm配置文件(解决第二种返回类型是object[]的问题,可以直接返回实例了)
java 代码
- package cn.com.dreamtech.news.domain;
- public class ArcCat {
- private String jsAcArtId;
- private String jsAcCatalogTitle;
- public String getJsAcArtId() {
- return jsAcArtId;
- }
- public void setJsAcArtId(String jsAcArtId) {
- this.jsAcArtId = jsAcArtId;
- }
- public String getJsAcCatalogTitle() {
- return jsAcCatalogTitle;
- }
- public void setJsAcCatalogTitle(String jsAcCatalogTitle) {
- this.jsAcCatalogTitle = jsAcCatalogTitle;
- }
- }
这个类是来自多个表的字段的属性
xml 代码
- xml version="1.0"?>
- "http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
- <hibernate-mapping>
- <class name="cn.com.dreamtech.news.domain.ArcCat">
- <id name="jsAcArtId" column="JS_AC_ART_ID"/>
- <property name="jsAcCatalogTitle" column="JS_AC_CATALOG_TITLE"/>
- class>
- <sql-query name="articlesss">
- <return alias="articleList" class="cn.com.dreamtech.news.domain.ArcCat"/>
- select article.js_ac_art_id,catalog.js_ac_catalog_title from Js_Ac_Article as article left join Js_Ac_Catalog catalog on article.js_Ac_art_Catalog=catalog.js_Ac_Catalog_Id
- ]]>
- sql-query>
- hibernate-mapping>
java 代码
- HibernateUtil.beginTransaction();
- Session session = HibernateUtil.currentSession();
- List list = session.getNamedQuery("articlesss").list();
- ArcCat article = (ArcCat)list.get(0);
- System.out.println(article.getJsAcArtId());