如下三张表:
create table admin(
id int identity(1,1) primary key,
adminName varchar(12) not null,
adminPwd varchar(18) not null,
nickName varchar(18) not null
)
create table sort(
id int identity(1,1) primary key,
sortName varchar(30) not null
)
create table article(
id int identity(1,1) primary key,
title varchar(100) not null,
content varchar(7500) not null,
writeDate varchar(30) not null,
visitCount int not null default(0),
sortId int references sort(id),
adminId int references admin(id)
)
下面为*.hbm.xml的一对多,多对一的代码
Admin.hbm.xml
...
<set name="articles">
<key>
<column name="adminId">
</key>
<one-to-many class="com.hail.blog.model.Article">
</set>
...
Sort.hbm.xml
...
<set name="articles">
<key>
<column name="sortId">
</key>
<one-to-many class="com.hail.blog.model.Article">
</set>
...
Article.hbm.xml
...
<many-to-one name="admin" class="com.hail.blog.model.Admin" fetch="select">
<column name="adminId">
</many-to-one>
<many-to-one name="sort" class="com.hail.blog.model.Sort" fetch="select">
<column name="sortId">
</many-to-one>
...
我的查询语句为:
Query query = session.createQuery("from Admin a,Article aa,Sort s where aa.admin=a.id and aa.sort=s.id order by aa.writeDate desc");
但是页面不会显示出值来,请各位帮帮忙看看该怎么写
不好意思,本人目前没有积分可送
Query query = session.createQuery("from Admin a,Article aa,Sort s where aa.admin=a.id and aa.sort=s.id order by aa.writeDate desc"); 中的aa.admin=a.id and aa.sort=s.id 语句改成aa.admin.id=a.id and aa.sort.id=s.id试试了,
我想是你的aa.admin是Admin对象,怎样等于id字段那,aa.sort同样
看你的hibernate配置,生成的vo类Article类中应该有属性是Admin、Sort型的,那么你在查的时候就不用写后面的条件了,hibernate会自动对应的,及使用结果是就按照Article获取Admin型变量就可以获取这个Article对应的Admin信息了,你试试