问一下关于框架错误的问题

这是一个测试类

public class test extends BaseHibernateDAO{
 public static void main(String args[]){
  test t=new test();
  t.a();  
   
 }
 public void a(){
  HouseService hs=new HouseServiceImpl(); 
  List<House> list=hs.findValue("id", 2);
  System.out.println(list.size());
 
 }
}

这里的运行结果是1

hs.findValue("id", 2);这个方法是hibernate通过myeclipse自动生成的dao方法

 

这是一个javaStruts2的action类

@Override
 public String execute() throws Exception {
  System.out.println(house+"查看");
  HouseService hs=new HouseServiceImpl(); 
  List<House> list=hs.findValue("id", "2"); //这里运行发生错误
  System.out.println(list.size());
  h=list.get(0); 
  return "chakan";
 } 

这段代码的运行结果为

2查看
八月 10, 2017 10:59:48 上午 org.hibernate.hql.internal.ast.HqlSqlWalker generatePositionalParameter
WARN: [DEPRECATION] Encountered positional parameter near line 1, column 44.  Positional parameter are considered deprecated; use named parameters or JPA-style positional parameters instead.

2查看就是打印出来的,说明有进来这个action,但是下面的list.size并没有打印出来,及时list是null也会出现空指针异常,但是也没有空指针异常。

网页的主要报错信息我就看懂了第一条java.lang.ClassCastException: java.lang.String cannot be cast to java.lang.Integer
看起来像是也就是转换错误

 

这里的错误最奇怪的就是上面的测试类可以通过,但是下面的action就无法通过,这是为什么

 

 

 

 

漫之旅
浏览 1883回答 1
1回答

HansonQ

单元测试里面入参类型是String ,Integer,action测试的时候是String,String.。你这个在编译器里面这么写 编译器都不能通过吧
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java