hibernate-mapping 如何映射关联查询中被关联表的字段?
比如我的查询语句是:SELECTt1.*,t2.id2,t2.name2FROMt1LEFTJOINt2ONt1.id1=t2.id2那么在t1.hbm.xml中如何映射...
比如我的查询语句是: SELECT t1.*, t2.id2, t2.name2 FROM t1 LEFT JOIN t2 ON t1.id1=t2.id2
那么在 t1.hbm.xml中如何映射 id2和name2 这两个字段?
public List<t1> findT1() {
String strSql = "SELECT t1.*, t2.id2, t2.name2 FROM t1 LEFT JOIN t2 ON t1.id1=t2.id2
";
Session oSess = this.getHibernateTemplate().getSessionFactory().openSession();
SQLQuery oQuery = oSess.createSQLQuery(strSql);
oQuery = oQuery.addEntity(t1.class);
List list = oQuery.list();
oSess.close();
return list;
}
public class t1 implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Integer id1;
private String name1;
private Integer id2;
private String name2;
( 各种get & set ……)
}
t1.hbm.xml 和 t2.hbm.xml 中分别只映射了各字表的字段,看了一些零星的资料说是要用 many-to-one 配置,暂时还没找到完整的资料,所以还没来得及试 展开
那么在 t1.hbm.xml中如何映射 id2和name2 这两个字段?
public List<t1> findT1() {
String strSql = "SELECT t1.*, t2.id2, t2.name2 FROM t1 LEFT JOIN t2 ON t1.id1=t2.id2
";
Session oSess = this.getHibernateTemplate().getSessionFactory().openSession();
SQLQuery oQuery = oSess.createSQLQuery(strSql);
oQuery = oQuery.addEntity(t1.class);
List list = oQuery.list();
oSess.close();
return list;
}
public class t1 implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Integer id1;
private String name1;
private Integer id2;
private String name2;
( 各种get & set ……)
}
t1.hbm.xml 和 t2.hbm.xml 中分别只映射了各字表的字段,看了一些零星的资料说是要用 many-to-one 配置,暂时还没找到完整的资料,所以还没来得及试 展开
展开全部
另外建一个中间类,比如是 QueryT1T2.java
public class QueryT1T2 implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Integer id1;
private String name1;
private Integer id2;
private String name2;
getters & setters……
}
查询时:
createSqlQuery(Sql).addScalar("id1").addScalar("name1").addScalar("id2").addScalar("name2")
把字段一个一个加进去
public class QueryT1T2 implements java.io.Serializable {
private static final long serialVersionUID = 1L;
private Integer id1;
private String name1;
private Integer id2;
private String name2;
getters & setters……
}
查询时:
createSqlQuery(Sql).addScalar("id1").addScalar("name1").addScalar("id2").addScalar("name2")
把字段一个一个加进去
展开全部
不需要。。。你可以直接用用表1 抓取出表2. 去数据的时候用表1里对应的字段取出表2的数据,,,
追问
麻烦请看一下我更改后的提问,谢谢!
http://zhidao.baidu.com/question/437638689.html?quesup2&oldq=1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不需要映射...
追问
麻烦请看一下我更改后的提问,谢谢!
http://zhidao.baidu.com/question/437638689.html?quesup2&oldq=1
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询