关于Hibernate查询的问题

来源:百度知道 编辑:UC知道 时间:2024/06/23 02:33:08
我现在有3张表···是多对一的关系·表结构是这样的·
create table
translate
(
t_Id int primary key,
t_Name varchar(30),
t_Byte int,
t_Double varchar(2),
t_Type int,
t_Field varchar(20),
t_Coding int,
t_Remarks varchar(20)
)

create table relations
(
l_Id int primary key,
r_Id int,
t_Id int,
l_Remarks varchar(20),
constraint
FK_REPORT
foreign key ( r_Id )
references report( r_Id ) ,

constraint
FK_TRANSLATE
foreign key ( t_Id )
references translate( t_Id )

)

create table report
(
r_Id int primary key,
r_Logo varchar(2),
r_table varchar(20),
r_Remarks varchar(20)
)

我现在想通过下面的SQL语句来查询结果·怎么得到到具体的数据呢?

select * from translate,report,relations where translate.t_id=relations.t_id and relations.r_id =report.r_id

Query query = this.session
.createSQLQuery(&qu

A, B, C三个表,假设:
A表有属性:aId(主键),bId,cId
B表有属性:bId(主键)
C表有属性:cId(主键)
其中A表中的bId与B表中的bId关联,A表中的cId与C表中的cId关联,那么就可以以A表为基表进行如下查询
select a, b, c from A a left join fetch a.b as b left join fetch a.c as c
where ...
需要配置实体映射和外键关联。

ArrayList al=(ArrayList)list;
for(int i=0;i<al.size();i++)
{
Information info=new Information();//自己定义的一个bean,里面有字
//段,get(),set()方法
info=(Information)al.get(i);
//取字段t_Name 的值只需要以下语句:
info.getT_Name();//Information里定义的get()方法
……

}

你都用hibernate了,居然不用实体映射数据库表,还写sql语句,不写hql语句,hinernate都是对实体进行读写操作的,你这样看不出你用hibernate的目的何在。。。。

list 返回的是Object[]数组的集合,
Object[] obj=(Object[]) list.get(0);
//打印的是数据库取出的第一个值。
//比如sql语句是 select id,name from relations,report,translate ……
//obj[0]就是id的值,obj[1]是name的值
System.out.println(obj[0]);<