TO lifetragedy(生活是场悲剧)
我只想请教点技术上的问题:
你在http://expert.csdn.net/Expert/topic/1147/1147775.xml?temp=.8791468一文中提到的那个解决方法我有点疑问,请教一下可以吗?
来写一个find方法命名为findMaxId :
SELECT OBJECT s FROM STUDENT(s)
好,然后,手改jboss-cmp.xml文件(我用的是JBOSS3)在jboss3中写入jboss ql语句(一种独立于ejbql的语句),因为ejb ql不提供SUM,MAX,ORDER BY这些东西,所以给人骂死了,但在2。1中将提供,到时,就要爽翻了
<query>
<description/>
<query-method>
<method-name>findMaxItem</method-name>
<method-params>
</method-params>
</query-method>
<jboss-ql>
<![CDATA[SELECT OBJECT(m) FROM Message m ORDER BY m.titleid DESC]]>
</jboss-ql>
</query>
OK,现在可以写CMP的代码喽:
long tid=getMaxItem();
tid+=1.0;
MessageHome messageHome=getMessageHome();
Message mbean=messageHome.create(new Long(tid),bounds,
java.sql.Timestamp.valueOf(messageTime),
content,title,mood,pid,
picture,space);
getMaxItem()的代码如下:
try{
Collection c=getMessageHome().findMaxItem();
Iterator it=c.iterator();
if(it.hasNext()){
Message mbean=(Message)it.next();
String tempstr=""+mbean.getTitleid();
int max=Integer.parseInt(tempstr);
return max;
}
else
{
return 0;
}
}catch(Exception ee){
return 0;
}
问题1:getMessageHome()是什么用法,为什么可以用这个方法?要在什么地方定义什么吗?
问题2:findMaxItem()和getMaxItem()要在哪里定义?实现方法写在哪里?
问题3:如果表中的数据很多的时候,用这种从第一个记录一直找到最后一个得到最大ID的方法是否太耗资源?