Java

本类阅读TOP10

·使用MyEclipse开发Struts框架的Hello World!(录像1)
·hibernate配置笔记
·AOP编程入门--Java篇
·linux下Tomcat 5.0.20 与 Apache 2 安装/集成/配置
·在win2003下整合了整合Tomcat5.5+ apache_2.0.53+ mod_jk_2.0.47.dll
·构建Linux下IDE环境--Eclipse篇
·Jsp 连接 mySQL、Oracle 数据库备忘(Windows平台)
·ASP、JSP、PHP 三种技术比较
·Tomcat5.5.9的安装配置
·AWT GUI 设计笔记(二)

分类导航
VC语言Delphi
VB语言ASP
PerlJava
Script数据库
其他语言游戏开发
文件格式网站制作
软件工程.NET开发
JBoss下的类似like的动态匹配

作者:未知 来源:月光软件站 加入时间:2005-2-28 月光软件站

以下方法解决了在JBoss下不能用like动态匹配的问题:  
比如:select  OBJECT(p)  from  tba  p  where  p.name  like  ?1---->这种方法在JBoss下面是行不通的.  
 
--------------------------------------------------------------------------  
声明:这个NB的方法并非小弟所为,而是ACCP(QQ:无域之绿)原创,小弟受他所教.并不敢一人独享.有什么高见还请大家多多指教.欢迎转贴.鼓励共享!  
 
1.先创建一个Finder方法,findByLike(String  abc,Object[]  agrs)  
参数名可以随便定,但类型必须是上面的,这是规定  
 
2.里面的QL语句保持为空,  
 
3.另外写一个方法,比如getIdByValue(value);  
   public  Collection  getIdByValue(String  value)  throws  FinderException  {  
       StringBuffer  jbossQL  =  new  StringBuffer();  
       jbossQL.append("SELECT  o.id  FROM  Teacher  o  WHERE  ");  
       jbossQL.append("o.name  LIKE  ?1  ");  
       Object[]  args  =  new  Object[1];  
       args[0]  =  "%"  +  value  +  "%";  
       return  findByLike(jbossQL.toString(),args);  
}  
 
其中findByLike(jbossQL.toString(),args)就是第一步所创建的那个空的方法.  
你要调用的就是这个方法了,里面的QL语句自己改改就可以用了.  
 
在ejb-jar.xml中可以找到你刚才创建的那个空的Finder方法的xml描述,比如  
     <query>  
                               <query-method>  
                                       <method-name>ejbSelectIdByQuery</method-name>  
                                       <method-params>  
                                               <method-param>java.lang.String</method-param>  
                                               <method-param>java.lang.Object[]</method-param>  
                                       </method-params>  
                               </query-method>  
                               <ejb-ql  />  
           </query>  
 
把这些内容拷到jbosscmp-jdbc.xml中(对应的那个实体bean的  
<ejb-name>TbaConart</ejb-name>标签后面)  
 
把里面的<ejb-ql/>改为<dynamic-ql/>  
 
到此编译,部署,大功告成


相关文章

相关软件