[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]
相关推荐
在开发基于Spring Boot和Spring Cloud的应用程序时,经常会遇到各种挑战,其中之一就是“unknown”问题。这通常出现在IDEA环境中,意味着系统无法正确识别或解析某些依赖或配置。本篇文章将详细探讨这个问题,并提供...
1. **检查错误日志**:查看控制台输出或日志文件,错误信息通常会提供解决问题的线索。 2. **验证配置**:确认`application.properties`或`application.yml`文件中的配置正确无误,如端口设置、数据库连接信息等。 3...
目前也是初次学习使用 spring boot、 spring cloud 、分布式, 搭建了一个简单spring cloud项目,没经验 使用不熟导致很多地方处理都很牵强, 本次分享出来也是希望有高人帮忙提点一二,给一些建设性意见,帮助提升,...
【标题】:SpringCloud完整项目 该项目是一个基于SpringBoot 2.x版本和SpringCloud Finchley构建的完整微服务系统。SpringBoot是Spring框架的一个模块,它简化了创建独立的、生产级别的基于Spring的应用程序的过程...
初学Spring的小伙伴,还在为找不到主配置文件而着急吗,该配置文件是基于Spring4.10版本的,不用再自己到官网页面上到处找了,分享给大家,也希望大家别再像我一样因为这个坑耽误了大半天的时间,如果要自己配置也...
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源码。该项目SRC下面包含一个简单的例子可做参考。 使用方法:解压,用eclipse import,选择Existing Projects into Workspace,接着下...
Spring专家力作 理论与实践完美结合 问题描述→解决方案→实现方法 第一部分 核心概念 第1章 控制反转和容器 1.1 使用容器管理组件 1.1.1 问题描述 1.1.2 解决方案 1.1.3 实现方法 ...
本资源包含了一系列Spring Framework的核心jar包,以及与Spring项目相关的其他重要库,如Junit、Log4j和Commons-Logging。 1. Spring Framework核心组件: - `spring-core-5.0.1.RELEASE.jar`:这是Spring框架的...
基于javaspring+mysql的知识分享系统源码+数据库文件(高分项目).zip该项目是个人大作业项目源码,评审分达到95分以上,都经过严格调试,确保可以运行!放心下载使用。 基于javaspring+mysql的知识分享系统源码+...
项目集成了以下功能: 1、服务注册与发现 2、Eureka用户认证 3、服务续约保活(心跳机制) 4、Eureka高可用 5、Eureka健康检测 6、服务下线 7、远程调用 8、负载均衡 9、服务雪崩 10、服务降级 11、Hystrix熔断器 12...
本文将总结 Spring 框架中的一些常见问题和解决方法,旨在帮助开发者更好地掌握 Spring 框架。 Attribute "scope" must be declared for element type "bean" 在 Spring 配置文件中, Bean 的 scope 属性是必须...
Spring专家力作 理论与实践完美结合 问题描述→解决方案→实现方法 第一部分 核心概念 第1章 控制反转和容器 1.1 使用容器管理组件 1.1.1 问题描述 1.1.2 解决方案 1.1.3 实现方法 ...
Spring Boot非Web项目运行的方法 Spring Boot是一个基于Java的开源框架,主要用于构建基于Web的应用程序。然而,在某些情况下,我们可能不需要提供Web服务,例如跑定时任务的项目。在这种情况下,我们需要了解如何...
核心技术采用Eureka、Fegin、Ribbon、Zuul、Hystrix、Security、OAth、Mybatis、Ace-cache等主要框架和中间件,UI采用Bootstrap、jquery等前端组件 spring boot项目是使用spring boot + thymeleaf 开发个人博客项目
该教程《Spring框架之快速搭建Spring Boot项目教程指南》主要介绍如何从零开始快速搭建和开发一个Spring Boot项目。内容涵盖了Spring Boot的基本概念、环境搭建、项目创建、控制器编写、数据库操作、错误处理、安全...
《Spring 2.5 MVC 完整项目:深入解析与实践》 在IT行业中,Spring框架作为Java领域的重要支柱,其MVC(Model-View-Controller)模块在Web应用程序开发中占据着举足轻重的地位。本文将针对“Spring 2.5 MVC 完整...
### 普通JavaWeb项目调用Spring Cloud接口详解 #### 前言 在现代软件开发中,微服务架构已成为构建大型复杂系统的主流选择之一。Spring Boot 和 Spring Cloud 作为构建微服务的重要工具,其易用性和强大的功能受到...
Spring cloud 实战项目(Spring cloud zuul、spring cloud eureka、spring cloud config、 spring cloud admin 、spring cloud 微服务1、微服务2、spring cloud zipkin、网关的熔断+负载均衡、 微服务调用的熔断+...
一个完整结构 spring cloud 分布式项目 基于spring boot