查询出 A表的 ID 和 NAME 该三个表都通过 ID 关联 A表的主键是 ID 求写一条 HQL语句? 多表关联的时候hbm.xml关联的时候而且多主键的时候应该怎么处理,注意哪里 hql查询出来的结果 怎么接收呢。 有道理即给分 谢谢 |
|
你只要配置好了a表和其他两个表的关系,然后直接查询a表就可以获得关联的所有数据。没有你想象的那么复杂,你应该是没有理解hibernate的作用,建议你去找一个例子来做一下比较容易理解
|
|
使用联合抓取,如果三张表有联系
比如A B C ,B中含A的外键 C中含B的外键 hql比如:from C c join fech c.bb b join fetch b.aa a where a.id=1 如果是结果是一条记录的话,就用C c来接收 如果是多条的话,就用List<C>来接收。 |
|
<class name="" table="busin_name" > <composite-id name="comp_id" class="po的名称"> <key-property name="id" column="id" type="java.lang.Long" length="10" /> <key-property name="business_id" column="business_id" type="java.lang.Long" length="10" /> </composite-id> <many-to-one name="a" class="a" update="false" insert="false" > <column name="id " /> </many-to-one> <many-to-one name="b" class="b" update="false" insert="false" > <column name="business_ID" /> </many-to-one> </class> 一个小范例,联合主键的写法 |
|
请问HQL 应该如何书写呢。查询 一个表的所有数据和另一个表的部分字段 |
|
查询部分字段的话可以在select * from table 在select 和 from 之间列出你要的字段就可以
|
|
Hibernate HQL 查询POJO部分字段 public class User(){ public User(String id,String name,String age){ 如果只想查询部分字段,HQL语句这样写: String hql = “select new User(u.id,u.name,u.age) from User as u where u.id = ?”; |
|
我理解你的意思了,还有个不是很清楚的地方 如果是多表的话 select new( A.ID,A.NAME,B.salary 是不是要在pojo中写个新的class其中包括所有查询中的所有字段呢 |
|
人家写的不就是hql吗 |
|
用原生SQL行吗
|
|
这条hql语句就是查询出 A,BC表的所有数据了吗? |
|
好久没逛论坛了,一看好多问题。。
如果要实现你那种要求的话,我感觉直接在hql里面写最简单的就行了,比如下面的例子 //当不是查询全字段,或者是从两张表中联合查询数据时,返回的是一个数组: Session session = HibernateSessionFactory.getSession(); Query query = session.createQuery("select a.id,b.title,b.username from A as a,B b"); //这里的A,B依然是对象 List list = query.list();//这里每一行都是一个1维数组 for(int i=0;i<list.size();i++) { Object []o = (Object[])list.get(i); //转型为数组 int id = (Integer)o[0]; //和select中顺序的类型相对应,可以是类 String title = (String)o[1]; String username = (String)o[2]; System.out.println("id:"+id+" , "+"title"+title+" , "+username); } HibernateSessionFactory.closeSession(); 查询结果集的大小 (Integer)session.createQuery(“select count(*) from User”).iterate().next(); |
|
如果实在不行,试试session.createSQLQuery(“sql语句”)
|
|
70分 |
参考下下面的语句吧,大体上和SQL类似
select? ????????? student0_.id?as?id1_0_,?????????? course2_.id?as?id4_1_,?????????? student0_.Sno?as?Sno1_0_,?????????? student0_.Sname?as?Sname1_0_,?????????? student0_.Sdept?as?Sdept1_0_,? student0_.Sage?as?Sage1_0_,?????????? student0_.Ssex?as?Ssex1_0_,?????????? student0_.Saddress?as?Saddress1_0_,?????????? course2_.Cno?as?Cno4_1_,?????????? course2_.Cname?as?Cname4_1_,?????????? course2_.Ccredit?as?Ccredit4_1_????? from? ????????? joblog.student?student0_????? left?outer?join?????????? sc?course1_? ?????????????? on?student0_.id=course1_.sno????? left?outer?join? ????????? joblog.course?course2_? ?????????????? on?course1_.cno=course2_.id?????where? ???????? ?student0_.Sname=""李XXX"" |
让集团发邮件过来吧
|