﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>BlogJava-小方的Java博客-随笔分类-开发经验点滴</title><link>http://www.blogjava.net/jorwen/category/20085.html</link><description /><language>zh-cn</language><lastBuildDate>Wed, 28 Feb 2007 03:18:25 GMT</lastBuildDate><pubDate>Wed, 28 Feb 2007 03:18:25 GMT</pubDate><ttl>60</ttl><item><title>[hibernate3]lab sysem项目一些建议</title><link>http://www.blogjava.net/jorwen/archive/2007/02/14/99886.html</link><dc:creator>方佳玮</dc:creator><author>方佳玮</author><pubDate>Wed, 14 Feb 2007 15:30:00 GMT</pubDate><guid>http://www.blogjava.net/jorwen/archive/2007/02/14/99886.html</guid><wfw:comment>http://www.blogjava.net/jorwen/comments/99886.html</wfw:comment><comments>http://www.blogjava.net/jorwen/archive/2007/02/14/99886.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/jorwen/comments/commentRss/99886.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/jorwen/services/trackbacks/99886.html</trackback:ping><description><![CDATA[
		<p>1.有个大大提高性能的建议：</p>
		<p>比如得到list 是5个班级，然后要得到5个班级的所有学生</p>
		<p>垃圾办法：5次通过级联获得,等于执行5条sql语句</p>
		<p>好办法：</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #0000ff">this</span>
				<span style="COLOR: #000000">.getSession().createQuery(<br />        </span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">from User a,Clazz b where a.clazz=b and b in(:clazz)</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">)<br /> .setParameterList(</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">clazz</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">, list)<br /> .list();</span>
		</div>
		<p>仅执行一条 </p>
		<p>
				<br />2.还有个很实用的方法，如何通过hql语句返回多个po</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #000000">List list </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">this</span>
				<span style="COLOR: #000000">.getSession().createQuery(<br /> </span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">from User a,Clazz b where a.clazz=b</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">).list();<br /><br /></span>
				<span style="COLOR: #008000">//</span>
				<span style="COLOR: #008000">使用的时候：</span>
				<span style="COLOR: #008000">
						<br />
				</span>
				<span style="COLOR: #000000">Iterator it </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> list.iterator();<br />  <br /></span>
				<span style="COLOR: #0000ff">while</span>
				<span style="COLOR: #000000">(it.hasNext()){<br /> Object[] vo </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> (Object[])it.next();<br /> User user </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> (User)vo[</span>
				<span style="COLOR: #000000">0</span>
				<span style="COLOR: #000000">];<br /> Clazz clazz </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> (Clazz)vo[</span>
				<span style="COLOR: #000000">1</span>
				<span style="COLOR: #000000">];<br /> System.out.println(user.getUserName() </span>
				<span style="COLOR: #000000">+</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">,</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #000000">+</span>
				<span style="COLOR: #000000"> clazz.getClassName());<br />} <br /><br /></span>
		</div>
		<p>
				<br />3.我们全部用一对一，多对一等。如果过滤有问题，有个办法</p>
		<div style="BORDER-RIGHT: #cccccc 1px solid; PADDING-RIGHT: 5px; BORDER-TOP: #cccccc 1px solid; PADDING-LEFT: 4px; FONT-SIZE: 13px; PADDING-BOTTOM: 4px; BORDER-LEFT: #cccccc 1px solid; WIDTH: 98%; WORD-BREAK: break-all; PADDING-TOP: 4px; BORDER-BOTTOM: #cccccc 1px solid; BACKGROUND-COLOR: #eeeeee">
				<span style="COLOR: #000000">List students </span>
				<span style="COLOR: #000000">=</span>
				<span style="COLOR: #000000"> </span>
				<span style="COLOR: #0000ff">this</span>
				<span style="COLOR: #000000">.getSession().createFilter(clazz.getStudents(),</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">where this.status='A'</span>
				<span style="COLOR: #000000">"</span>
				<span style="COLOR: #000000">).list(); </span>
		</div>
<img src ="http://www.blogjava.net/jorwen/aggbug/99886.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/jorwen/" target="_blank">方佳玮</a> 2007-02-14 23:30 <a href="http://www.blogjava.net/jorwen/archive/2007/02/14/99886.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>