【新手求救】hql语句查询问题

buzhidao1123 2014-10-20 12:44:19
本人禽兽 学习hql遇到问题请求支援
public static void main(String args[]){
Session session = HibernateUtil.getSessionFactory().openSession();
Query query = session.createQuery("from House");
List<House> list = query.list();
Iterator<House> it = list.iterator();
System.out.println("我运行了");
while(it.hasNext()){
House house = it.next();
System.out.println(house.getDescription()+" "+house.getTitle());
}
System.out.println("我运行即将结束");
session.close();
}
}

我的House里有数据的 但是运行结果 如下
Hibernate:
select
house0_.id as id3_,
house0_.user_id as user2_3_,
house0_.type_id as type3_3_,
house0_.street_id as street4_3_,
house0_.title as title3_,
house0_.description as descript6_3_,
house0_.price as price3_,
house0_.pubdate as pubdate3_,
house0_.adddate as adddate3_,
house0_.floorage as floorage3_,
house0_.contact as contact3_
from
house house0_
我运行了
我运行即将结束
-------------------------------------------------------------
为什么迭代不出东西来呢?
...全文
180 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
引用 10 楼 buzhidao1123 的回复:
[quote=引用 9 楼 littlebrain4solving 的回复:] 循环进入了吗?List的size大小查看一下,你打断点单步调试就能看的清清楚楚! 用Debug启动
发现了是没有数据 没有权限 给了权限就好了 另外问一下 运行后出现这个错误 No row with the given identifier exists: [com.pb.entity.HouseUser#5] 我检查不出来了
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="com.pb.entity.House" table="house" lazy="false">
		<id name="id" type="int">
			<column name="id" />
			<generator class="assigned">
			</generator>
		</id>
		<many-to-one name="houseUser" class="com.pb.entity.HouseUser"
			cascade="none" fetch="join">
			<column name="houseuser_id" />
		</many-to-one>
		<many-to-one name="houseType" class="com.pb.entity.HouseType"
			cascade="none" fetch="join">
			<column name="type_id" />
		</many-to-one>
		<many-to-one name="street" class="com.pb.entity.Street"
			cascade="none" fetch="join">
			<column name="street_id" />
		</many-to-one>
		<property name="title" type="string">
			<column name="title" length="50" not-null="false" />
		</property>
		<property name="description" type="string" lazy="false">
			<column name="description" />
		</property>
		<property name="price" type="double">
			<column name="price" precision="10" scale="4" not-null="false" />
		</property>
		<property name="pubdate" type="date">
			<column name="pubdate" length="23" />
		</property>
		<property name="adddate" type="date">
		    <column name="adddate" length="23" />
		</property>
		<property name="floorage" type="double">
			<column name="floorage" length="10" />
		</property>
		<property name="contact" type="string">
			<column name="contact" length="10" />
		</property>

	</class>
	</hibernate-mapping>
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 这是house 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="com.pb.entity.HouseUser" table="HOUSEUSER" lazy="false">
		<id name="id" type="int">
			<column name="id" />
			<generator class="sequence" >
            <param name="sequence">house_user</param>
            </generator>
		</id>
	<property name="username" type="string">
			<column name="username" not-null="true" />
	</property>
	<property name="password" type="string">
			<column name="password" not-null="true" />
	</property>
	<property name="telephone" type="string">
			<column name="telephone"/>
	</property>
	<property name="isadmin" type="string">
			<column name="isadmin"/>
	</property>
	<property name="realname" type="string">
			<column name="realname"/>
		
	</property>
	</class>
</hibernate-mapping>
这是HouseUser[/quote] 参考资料 http://zhidao.baidu.com/link?url=jIW0Eg6Reu4r9PC-F_EgVEBkBGqZYKfpOTnSI1qDYdr8ixaCq4RojCCX0FRSHq92IROYI4HyXCi6csiqDgWJ-K http://blog.csdn.net/eyejava/article/details/1896492
shixitong 2014-10-20
  • 打赏
  • 举报
回复
1、插入的数据确认commit了吧(在数据库中存在)? 2、获取session改为这样试试
Session session = HibernateUtil.getSessionFactory().getSession();
buzhidao1123 2014-10-20
  • 打赏
  • 举报
回复
引用 9 楼 littlebrain4solving 的回复:
循环进入了吗?List的size大小查看一下,你打断点单步调试就能看的清清楚楚! 用Debug启动
发现了是没有数据 没有权限 给了权限就好了 另外问一下 运行后出现这个错误 No row with the given identifier exists: [com.pb.entity.HouseUser#5] 我检查不出来了
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="com.pb.entity.House" table="house" lazy="false">
		<id name="id" type="int">
			<column name="id" />
			<generator class="assigned">
			</generator>
		</id>
		<many-to-one name="houseUser" class="com.pb.entity.HouseUser"
			cascade="none" fetch="join">
			<column name="houseuser_id" />
		</many-to-one>
		<many-to-one name="houseType" class="com.pb.entity.HouseType"
			cascade="none" fetch="join">
			<column name="type_id" />
		</many-to-one>
		<many-to-one name="street" class="com.pb.entity.Street"
			cascade="none" fetch="join">
			<column name="street_id" />
		</many-to-one>
		<property name="title" type="string">
			<column name="title" length="50" not-null="false" />
		</property>
		<property name="description" type="string" lazy="false">
			<column name="description" />
		</property>
		<property name="price" type="double">
			<column name="price" precision="10" scale="4" not-null="false" />
		</property>
		<property name="pubdate" type="date">
			<column name="pubdate" length="23" />
		</property>
		<property name="adddate" type="date">
		    <column name="adddate" length="23" />
		</property>
		<property name="floorage" type="double">
			<column name="floorage" length="10" />
		</property>
		<property name="contact" type="string">
			<column name="contact" length="10" />
		</property>

	</class>
	</hibernate-mapping>
、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、 这是house 、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、、
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd">
<hibernate-mapping>
	<class name="com.pb.entity.HouseUser" table="HOUSEUSER" lazy="false">
		<id name="id" type="int">
			<column name="id" />
			<generator class="sequence" >
            <param name="sequence">house_user</param>
            </generator>
		</id>
	<property name="username" type="string">
			<column name="username" not-null="true" />
	</property>
	<property name="password" type="string">
			<column name="password" not-null="true" />
	</property>
	<property name="telephone" type="string">
			<column name="telephone"/>
	</property>
	<property name="isadmin" type="string">
			<column name="isadmin"/>
	</property>
	<property name="realname" type="string">
			<column name="realname"/>
		
	</property>
	</class>
</hibernate-mapping>
这是HouseUser
  • 打赏
  • 举报
回复
循环进入了吗?List的size大小查看一下,你打断点单步调试就能看的清清楚楚! 用Debug启动
buzhidao1123 2014-10-20
  • 打赏
  • 举报
回复
引用 4 楼 shixitong 的回复:
select * from House在数据库里执行下看看,如果没有数据,加几条数据就行了
有数据的 为了确定还新添加了2条呢 insert into house values(1,'北京好房!不买后悔','传统的两室一厅,光线好,格局好',1000,null,null,132,'好地方',1,2,3); insert into house values(2,'通州房屋,仅剩3款','超大面积享受,四室三厅,开窗见河,风景优美',200000,null,null,122,'好风光',1,2,3); insert into house values(3,'王府井大街新楼开盘','全新体验,全新享受,高档小区',40000,null,null,111,'行不行',1,2,2); insert into house values(4,'西单新房','距地铁近,好氛围,好景色,便宜',300000,null,null,311,'很好的',2,3,5);
chenhao237 2014-10-20
  • 打赏
  • 举报
回复
哎 骚年 需努力啊
zy_think123 2014-10-20
  • 打赏
  • 举报
回复
同上,没得数据
我是一只好羊 2014-10-20
  • 打赏
  • 举报
回复
应该是没数据吧
shixitong 2014-10-20
  • 打赏
  • 举报
回复
select * from House在数据库里执行下看看,如果没有数据,加几条数据就行了
tuzuxiao 2014-10-20
  • 打赏
  • 举报
回复
是0应该没数据吧,没报错的话!
buzhidao1123 2014-10-20
  • 打赏
  • 举报
回复
引用 1 楼 nd707355117 的回复:
没有进入while循环,list为0 List<House> list = query.list(); System.out.println(list.size());//看结果是否为0
是0 但要怎么解决呢?
仦石頭 2014-10-20
  • 打赏
  • 举报
回复
数据库没有数据还是 没有getset方法
guan_tu 2014-10-20
  • 打赏
  • 举报
回复
没有进入while循环,list为0 List<House> list = query.list(); System.out.println(list.size());//看结果是否为0

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧