`
saiyaren
  • 浏览: 226031 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

我做spring项目以来的一些问题解决方法,给大家分享一下,呵呵!

阅读更多
引用

[list]
[1]
如果我们碰到控制台报这个错误:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Table 'hbstpdb.hbstpdb__newskinds' doesn't exist
如去我们的XXXX.hbm.xml文件中找到这个语句
<class name="com.ngworld.bookstore.vo.Newskinds" table="newskinds" catalog=”hbstpdb”>
把上面的这个模式名(catalog=”hbstpdb”)删掉就不会出现上面的错误了
[2]

org.hibernate.id.IdentifierGenerationException: ids for this class must be manually assigned before calling save():



异常原因:
<id>元素配置不正确,<id>元素缺少其子元素<generator></generator>的配置。
解决方法:
<id>元素映射了相应数据库表的主键字段,对其子元素<generator  class="">,其中class的取值可以为increment、identity、sequence、hilo、native……等,更多的可参考hibernate参考文档,一般取其值为native  。

所以我们去我们的vo包中,找我们对应的.hbm.xml的文件,把文件中的<id>配置改成increment就可以了(mysql)
如果我们用的是oracle数据库的话,多表的话我们是要建立sequence(序列的),所以也要把相应的序列文件加到里面
如:
<id name="id" type="java.lang.Long">
  <column name="ID" precision="22" scale="0" />
 <generator class="sequence" >
<param name="sequence">productseq</param>
</generator>
  </id>

[3]request的一个问题,解释如下:
这个是我们的action的页面准备文件:
protected Object FormBackingObject(HttpServletRequest request) throws Exception {
		String id = request.getParameter("articleId");
		Article list = articleService.getArticleById(id);
		request.setAttribute("article",list);
		return super.formBackingObject(request);
	}


Article 是表 list是取出表中指定id的字段,然后通过request把list的值返回到页面中,在页面中就可以用article了,比如$(article.id) 这个里面的id是表的字段,然后通过这个jstl语句就可以取出article表中的id了,但是${article.id}的artciel必须和request.setAttribute("article",list);中引号中的变量一致,如果引号中换了别的变量则在引用中则用那个变量名,如:
request.setAttribute("articlelist",list);
那么在jsp中就这么引用${articlelist.id},所这个参数就可以直接在我们的jsp中引用了
[4]
Lazy错误:
如果在控制台中报了如下的错误:
2008-08-20 17:09:57,812 ERROR [org.hibernate.LazyInitializationException] - <could not initialize proxy - the owning Session was closed>
org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed


这里告诉我们session已经关闭了,所以我们要把我们的hibernate的.hbm.xml文件中的
Class中要把我们的lazy设置成false这样的错误就可以解决了。(注:记住这个是外键表的.hbm.xml文件,比如a表ID和b表ID是关联,b表ID是a表的外键,这个文件是b表的文件,只有lazy加在b表才有作用)
例:
<hibernate-mapping>
    <class name="com.ngworld.bookstore.vo.Department" table="department" lazy="false" >
    .......   
    </class>
</hibernate-mapping>


[5]
For input string: "name"问题:

当控制台返回以下的错误时:
java.lang.NumberFormatException: For input string: "name"
我们可以去我们的action文件中输出些文件来看看具体是哪里出了问题:
public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception {
		// TODO Auto-generated method stub
		List categoryList=categoryService.getCategoryList();
		for (int i=0;i<categoryList.size();i++){
			System.out.println(categoryList.get(i).getClass());   
		}
		request.setAttribute("categoryList", categoryList);
		return new ModelAndView("/category/categoryList.jsp");
	}


这个是我的action代码(controller),在这里我们可以用:
这个是我的action代码(controller),在这里我们可以用:
System.out.println(categoryList.get(i).getClass());
来输出看看我们哪个类出了问题
我报这个错误的时候是因为的hql语句写错了,所以改完了后就好了
String hql=”from category”;
Return getHibernateTemplelate.find(hql);
这个是我改后的正确代码
我之前错误的代码是这个:
String hql="from Category p left join p.department order by p.id";
return getHibernateTemplate().find(hql);
所以报了上面的错误,具体的我们可以在输出的类中我们把我们错误给找到!

[6]
"table" is not mapped 解决方法:
这个问题是出在我们的hql语句当中的,其中查询的表是我们的pojo文件的名字而不是我们的表名字
例:
比如我们的pojo文件是CategoryPojo.java而我们的表的名字是category
如果我们的写下面的语句就会报上面的错误:
hql=”from category”
return getHibernateTemplelate.find(hql);

如果改成这个就不会有错误了
hql=”from CategoryPojo”
return getHibernateTemplelate.find(hql);


[7]
Property 'name' not found on type java.lang.String问题解决方法:
当我们的控制台返回下面的错误时:
严重: Servlet.service() for servlet jsp threw exception
javax.el.PropertyNotFoundException: Property 'name' not found on type java.lang.String
at javax.el.BeanELResolver$BeanProperties.get(BeanELResolver.java:193)
	at javax.el.BeanELResolver$BeanProperties.access$400(BeanELResolver.java:170)
	at javax.el.BeanELResolver.property(BeanELResolver.java:279)
	at javax.el.BeanELResolver.getValue(BeanELResolver.java:60)
	at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)



这里的错误告诉我们是我们的el表达式中出了错误
我到我的jsp文件中去看了看
<c:forEach items="categoryList" var="category" varStatus="status">
  <tr> 
    <td><c:out value="${status.index+1}"/></td> 
    <td>${category.name}</td>
    <td>${category.department.name}</td>
    <td>${category.description }</td>
  </tr>
  </c:forEach>


看看我们的items这里,categoryList是我们request的一个参数,这里应该用items=${ categoryList } 用${}把我们的参数引起来,这个是jstl的语法,我们这样给改了之后,错误就可以解决了!






以上是我在学习spring 做个小小的项目的时候遇到的一些错误,因为控制台返回的信息不够明确所以在许多的地方遇到了问题,而且请教了许多的人才解决了以上的问题,希望这些对于大家来说有很大的帮助
[/list]
分享到:
评论

相关推荐

    springcloud项目,解决unknown问题

    IDEA环境,springboot整合springcloud项目,并且解决springcloud导包出现unknown问题

    spring cloud完整项目

    目前也是初次学习使用 spring boot、 spring cloud 、分布式, 搭建了一个简单spring cloud项目,没经验 使用不熟导致很多地方处理都很牵强, 本次分享出来也是希望有高人帮忙提点一二,给一些建设性意见,帮助提升,...

    spring项目练习

    今天进行了spring项目练习,总体来说还算成功。再接再厉呗。呵呵~

    Spring项目主配置文件

    初学Spring的小伙伴,还在为找不到主配置文件而着急吗,该配置文件是基于Spring4.10版本的,不用再自己到官网页面上到处找了,分享给大家,也希望大家别再像我一样因为这个坑耽误了大半天的时间,如果要自己配置也...

    spring3.0 项目源码

    spring3.0 项目源码 spring3.0 注解 的学习,spring mvc 完整项目, 请你好好学习一下!

    spring2.5.5+JDK1.8 版本报错的解决办法(修改后jar)

    org.springframework.core.JdkVersion 于是找到一个spring-core-3.x.RELEASE.jar,用其中的JdkVersion这个类替换spring-2.5.5.jar对应class,问题解决! 注意:别用spring-core-4.x.RELEASE.jar,JdkVersion....

    Spring源码项目

    Spring源码项目,集成了Spring主要源码到项目中,方便初学者查看及跟踪Spring源码。该项目SRC下面包含一个简单的例子可做参考。 使用方法:解压,用eclipse import,选择Existing Projects into Workspace,接着下...

    Spring攻略PDF版

    Spring专家力作 理论与实践完美结合 问题描述→解决方案→实现方法 第一部分 核心概念  第1章 控制反转和容器   1.1 使用容器管理组件   1.1.1 问题描述   1.1.2 解决方案   1.1.3 实现方法  ...

    Spring框架web项目实战全代码分享

    主要介绍了Spring框架web项目实战全代码分享,具有一定参考价值,需要的朋友可以了解下。

    Spring Cloud项目技术解决方案闪电战

    项目集成了以下功能: 1、服务注册与发现 2、Eureka用户认证 3、服务续约保活(心跳机制) 4、Eureka高可用 5、Eureka健康检测 6、服务下线 7、远程调用 8、负载均衡 9、服务雪崩 10、服务降级 11、Hystrix熔断器 12...

    Spring攻略中文版PDF

    Spring专家力作 理论与实践完美结合 问题描述→解决方案→实现方法 第一部分 核心概念  第1章 控制反转和容器   1.1 使用容器管理组件   1.1.1 问题描述   1.1.2 解决方案   1.1.3 实现方法  ...

    springcloud项目demo

    springcloud项目模板,搭建springcloud项目,希望大家共同学习进步

    spring项目所需jar包

    资源包括了spring-framework所有jar和junit、log4j、commons-logging等spring项目所需jar,完整全面,构建基础spring项目,下载这个足够了。

    spring cloud和spring boot两个完整项目

    核心技术采用Eureka、Fegin、Ribbon、Zuul、Hystrix、Security、OAth、Mybatis、Ace-cache等主要框架和中间件,UI采用Bootstrap、jquery等前端组件 spring boot项目是使用spring boot + thymeleaf 开发个人博客项目

    百分百解决 springcloud项目添加context-path,调用方404问题

    框架,springcloud,nacos 当A微服务调用B微服务(B 重定向了server.servlet.context-path),那么A调用B失败,网上大部分是@FeignClient 添加path方案 缺点:耦合高,难以维护 进行整改 B添加配置文件 spring: ...

    spring boot资料以及项目

    这是我自己学习springboot总结出来的资料,以及自己做的项目!希望对大家有所帮助!

    spring cloud项目源码

    一个完整结构 spring cloud 分布式项目 基于spring boot

    Spring攻略英文版(附带源码)

    Spring专家力作 理论与实践完美结合 问题描述→解决方案→实现方法 第一部分 核心概念  第1章 控制反转和容器   1.1 使用容器管理组件   1.1.1 问题描述   1.1.2 解决方案   1.1.3 实现方法   1.2...

    论坛系统项目(Struts 2+Hibernate+Spring实现)

    论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts 2+Hibernate+Spring实现)论坛系统项目(Struts...

    springcloud项目Demo

    Spring cloud 实战项目(Spring cloud zuul、spring cloud eureka、spring cloud config、 spring cloud admin 、spring cloud 微服务1、微服务2、spring cloud zipkin、网关的熔断+负载均衡、 微服务调用的熔断+...

Global site tag (gtag.js) - Google Analytics