- 浏览: 244994 次
- 性别:
- 来自: 武汉
文章分类
最新评论
-
shangyixue:
受益了
『Hibernate』面对几个错误的解决关键 -
lection.yu:
靠谱。。这个教程可以用
IIS6与Tomcat6 -
lenomon:
找到篇简洁的 IP地址与整数之间的转换
java字符串应用之IP地址转换成整数 -
gaolinwu:
,支持一下
J2EE 13种核心技术 -
tomcat的问题:
多谢多谢
selectmethod=cursor的含义及其使用
1、
MyRegisterInfo在数据库没有identifier [14]对象。
2、
出错原因:password 和repassword同时对应数据库表中的password一列,同时update和insert都设为true。
xml文件如下:
将repassword的insert和update设为false。
3、
错误原因:hibernate的映射文件中ID是大写的,而pojo的类中id是小写的
注意事项:每个pojo的类都要继承abstractEntity,其中abstractEntity类有个ID的属性要重写
4、
错误原因:
在application.xml文件中deleteRegister方法以delete开头,并没有被设定为可更改的,应如下设置:
<!--为事物创建代理类,并指定方法的事物类型-->
<prop key="delete*">PROPAGATION_REQUIRED</prop>
5、
public class GraAppInfoForm
extends ActionForm 错误写成
public abstratic class GraAppInfoForm
extends ActionForm
6、
actioin类中的newone方法如下:
applicationcontext中的GraAppService的配置如下:
因此this.getBean("GraAppService");是为了得到GraAppServicImpl类的实现。GraAppService是interface
7、
hibernate.cfg.xml没有配置Demand.hbm.xml文件的目录
8、
java.sql.SQLException: 列名 'name' 无效。
因为hibernate声明的id,name的columnid属性没有与数据库的字段对应,所以id,name无效。
9、
错误语句为
needNum = Integer.parseInt(demand.getNeedNum());
usedNeedNum = Integer.parseInt(demand.getUsedNeedNum());
因为demand.getUsedNeedNum()==null,无法转化为string 类型,
10、
错误的原因:
以后懂得通过查找字数,来检查错误
11、
1、pojo类的属性只有与form属性名字相同,才能beancopy成功
2、pojo中属性是实体,在form中一定要用int,long表示
出现这错误的原因是pojo中的属性不是实体,而错误写成:
string
private String nation;应改成 private Syscode nation;
12、
hibernate配置文件没改,程序找不到相应的类
其实FSUnit对应的类应该是FSUnit
13、
错误原因:hibernate.cfg.xml没有配置fsunit.hbm.xml文件的位置
14、
错误的原因是
public class GraAppDAOImpl
extends BaseDAOImpl implements GraAppDAO {
}
先继承后实现
15、2006-04-27 08:38:54,078 ERROR
16、
pojo类为:
action 类为
dao类save方法为
getHibernateTemplate().save(obj);
当cascade="all",插入new college 除了id和原来的记录一样,其他的字段全部都被更新,为null
当cascase=“insert”,插入new college 只会把它的id插入grainfo表中,其他字段不变。
17、
18、
jsp文件如下:
应改为:
<logic:notEmpty name="graduateList" property="items">
<logic:iterate id="graduate" name="graduateList" property="items" >
</ogic:notEmpty >
</ogic:iterat>
19、
SysUser user= (SysUser) request.getSession().getAttribute(WebConstants.SESSION_USER);
System.out.println(user.getRole().getRoleName());
当hibernate session取出数据放到http session时,
由于sysuser中role的lazy=“true”,所以没有将RoleName放到http session中,当System.out.println(user.getRole().getRoleName());
时,虽然http session还开着, hibernat seesion已经关闭
20、
系统找不到WFNode
org.springframework.orm.ObjectRetrievalFailureException: Object of class [com.xindeco.myregister.pojo.MyRegisterInfo] with identifier [14]: not found
MyRegisterInfo在数据库没有identifier [14]对象。
2、
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is org.hibernate.MappingException: Repeated column in mapping for entity: com.xindeco.myregister.pojo.MyRegisterInfo column: password (should be mapped with insert="false" update="false")
出错原因:password 和repassword同时对应数据库表中的password一列,同时update和insert都设为true。
xml文件如下:
<property name="password" type="java.lang.String" update="true" insert="true" access="property" column="password" length = "32" /> <property name="repassword" type="java.lang.String" update="false" insert="false" access="property" column="password" length = "32" />解决的方法:
将repassword的insert和update设为false。
3、
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'sessionFactory' defined in ServletContext resource [/WEB-INF/applicationContext.xml]: Initialization of bean failed; nested exception is org.hibernate.PropertyNotFoundException: Could not find a getter for ID in class
错误原因:hibernate的映射文件中ID是大写的,而pojo的类中id是小写的
注意事项:每个pojo的类都要继承abstractEntity,其中abstractEntity类有个ID的属性要重写
public abstract class AbstractEntity implements Entity, BaseDTO { abstract public long getID(); abstract public void setID(long id); public int hashCode() { return (int)this.getID(); } public boolean equals(Object obj) { if (obj == this) { return true; } if (obj instanceof Entity) { return this.getID() == ( (Entity) obj).getID(); } return false; } }
4、
org.springframework.dao.InvalidDataAccessApiUsageException: Write operations are not allowed in read-only mode (FlushMode.NEVER) - turn your Session into FlushMode.AUTO or remove 'readOnly' marker from transaction definition
错误原因:
在application.xml文件中deleteRegister方法以delete开头,并没有被设定为可更改的,应如下设置:
<!--为事物创建代理类,并指定方法的事物类型-->
<bean id="baseTxProxy" lazy-init="true" abstract="true" class="org.springframework.transaction.interceptor.TransactionProxyFactoryBean"> <property name="transactionManager"> <ref bean="transactionManager"/> </property> <property name="transactionAttributes"> <props> <prop key="add*">PROPAGATION_REQUIRED</prop> <prop key="cancel*">PROPAGATION_REQUIRED</prop> </props> </property> </bean>加上一行
<prop key="delete*">PROPAGATION_REQUIRED</prop>
5、
ERROR org.apache.struts.util.RequestUtils - Error creating form bean of class com.xindeco.business.web.form.GraAppInfoForm
public class GraAppInfoForm
extends ActionForm 错误写成
public abstratic class GraAppInfoForm
extends ActionForm
6、
2006-04-25 08:56:38,495 ERROR com.xindeco.business.web.action.GraAppAction - com.xindeco.business.web.action.GraAppAction@8e2fb5 java.lang.ClassCastException: $Proxy0 at com.xindeco.business.web.action.GraAppAction.newone(GraAppAction.java:30) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:585) at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:274) at com.xindeco.core.web.action.BaseAction.dispatchMethod(BaseAction.java:153) at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:194)
actioin类中的newone方法如下:
public class GraAppAction extends BaseAction { public ActionForward newone(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { GraAppService graservice = (GraAppService) this.getBean("GraAppService"); }
applicationcontext中的GraAppService的配置如下:
<bean id="GraAppDAO" class="com.xindeco.business.dao.impl.GraAppDAOImpl"> <property name="support"> <ref local="support"/> </property> <property name="sessionFactory"> <ref local="sessionFactory"/> </property> </bean> <bean id="GraAppService" parent="baseTxProxy"> <property name="target"> <bean class="com.xindeco.business.service.impl.GraAppServiceImpl" autowire="byName"> <property name="baseDAO"> <ref bean="GraAppDAO"/> </property> </bean> </property> </bean>
因此this.getBean("GraAppService");是为了得到GraAppServicImpl类的实现。GraAppService是interface
public class GraAppServiceImpl extends BaseServiceImpl implements GraAppService{ }
7、
org.hibernate.hql.ast.QuerySyntaxException: Demand is not mapped. [from Demand where unitid = ? and needNum > usedNeedNum]
hibernate.cfg.xml没有配置Demand.hbm.xml文件的目录
8、
org.springframework.jdbc.BadSqlGrammarException: Bad SQL grammar[] in task 'Hibernate operation'; nested exception is java.sql.SQLException: 列名 'id' 无效。
java.sql.SQLException: 列名 'name' 无效。
因为hibernate声明的id,name的columnid属性没有与数据库的字段对应,所以id,name无效。
9、
java.lang.NumberFormatException: null at java.lang.Integer.parseInt(Integer.java:415) at java.lang.Integer.parseInt(Integer.java:497) at com.xindeco.business.service.impl.DemandServiceImpl.findDemandListByUnitId(DemandServiceImpl.java:33)
错误语句为
needNum = Integer.parseInt(demand.getNeedNum());
usedNeedNum = Integer.parseInt(demand.getUsedNeedNum());
因为demand.getUsedNeedNum()==null,无法转化为string 类型,
10、
rg.apache.jasper.JasperException: /GraAppInfo/GraAppInfoNew.jsp(343,29) According to TLD, tag bean:write must be empty, but is not
错误的原因:
<select name="politicsID" > <option value="">请选择</option> <logic:notEmpty name="politicsList"> <logic:iterate id="politics" name="politicsList"> </logic:notEmpty> <option value="<bean:write name="politics" property="codeID"/>"><bean:write name="politics" property="codeName"/></option> </logic:iterate> </select>就因为少了/>
以后懂得通过查找字数,来检查错误
11、
2006-04-26 13:27:54,812 ERROR com.xindeco.core.util.BeanUtils - bean property [Nation] copy failed com.xindeco.core.exception.ConvertException: org.springframework.orm.hibernate3.HibernateSystemException: Unknown entity: java.lang.String; nested exception is org.hibernate.MappingException: Unknown entity: java.lang.String beanUtil.beanCopy(grapojo,form,BizConstants.CONVERTER);要求:
1、pojo类的属性只有与form属性名字相同,才能beancopy成功
2、pojo中属性是实体,在form中一定要用int,long表示
出现这错误的原因是pojo中的属性不是实体,而错误写成:
string
private String nation;应改成 private Syscode nation;
12、
2006-04-26 14:38:37,843 ERROR com.xindeco.business.web.action.GraAppAction - com.xindeco.business.web.action.GraAppAction@fa1b2d java.lang.NullPointerException at com.xindeco.business.web.action.GraAppAction.newone(GraAppAction.java:43) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
hibernate配置文件没改,程序找不到相应的类
<many-to-one name="FSUnit" class="com.xindeco.business.pojo.EmployUnitBaseInfo" cascade="none" outer-join="auto" update="true" insert="true" access="property" column="fSUnit" />
其实FSUnit对应的类应该是FSUnit
<many-to-one name="FSUnit" class="com.xindeco.business.pojo.FSUnit" cascade="none" outer-join="auto" update="true" insert="true" access="property" column="fSUnit" />
13、
org.hibernate.MappingException: An association from the table GraAppInfo refers to an unmapped class: com.xindeco.business.pojo.FSUnit
错误原因:hibernate.cfg.xml没有配置fsunit.hbm.xml文件的位置
14、
java.lang.ClassCastException: com.xindeco.business.dao.impl.GraAppDAOImpl at com.xindeco.business.service.impl.GraAppServiceImpl.addGraduateApp(GraAppServiceImpl.java:16) GraAppServiceImpl.java:16第16行: GraAppDAO dao = (GraAppDAO) this.getBaseDAO();//其实得到的是GraAppDAOImpl
错误的原因是
public class GraAppDAOImpl extends BaseDAOImpl { }没有实现GraAppDAO接口,正确的做法是
public class GraAppDAOImpl
extends BaseDAOImpl implements GraAppDAO {
}
先继承后实现
15、2006-04-27 08:38:54,078 ERROR
com.xindeco.business.web.action.GraAppAction - com.xindeco.business.web.action.GraAppAction@1d6399b java.lang.ClassCastException: com.xindeco.business.pojo.SysCode at org.hibernate.type.StringType.set(StringType.java:26) at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:63) at org.hibernate.type.NullableType.nullSafeSet(NullableType.java:40) 一般是因为hibernate声明类型和pojo类声明的类型不一样,并且前面已经出现了Hibernate: insert into TGraAppInfo (name, whereFrom, degree, college, speciality, studentRelTel, remark, higherEduLength, highSchool, studyResume, normalOrNot, proxyUnit, workPost, workPlace, studentAddress, studentPostNumber, nation, appStatus) values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)的操作提示,查出错误的原因有:
<many-to-one name="demand" class="com.xindeco.business.pojo.Syscode" cascade="none" outer-join="auto" update="true" insert="true" access="property" column="demandID" /> <property name="appStatus" type="int" update="true" insert="true" access="property" column="appStatus" length="10" />应改为
<many-to-one name="demand" class="com.xindeco.business.pojo.Demand" cascade="none" outer-join="auto" update="true" insert="true" access="property" column="demandID" /> <many-to-one name="nation" class="com.xindeco.business.pojo.SysCode" cascade="none" outer-join="auto" update="true" insert="true" access="property" column="nation" />
16、
org.springframework.dao.InvalidDataAccessApiUsageException: object references an unsaved transient instance - save the transient instance before flushing: com.xindeco.business.pojo.SysCode at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:626) at org.springframework.orm.hibernate3.HibernateTransactionManager.convertHibernateAccessException(HibernateTransactionManager.java:570) at org.springframework.orm.hibernate3.HibernateTransactionManager.doCommit(HibernateTransactionManager.java:482)
pojo类为:
public class GraAppInfo{ private College college; }
action 类为
public class GraAppAction extends BaseAction { public ActionForward add(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws Exception { graInfo.setCollege(new College());\\必须从数据库找到college这个对象,而不能新生成 graInfo.getCollege().setID(graForm.getCollegeID()); graInfo.setAppStatus(Integer.parseInt("0")); service.addGraduateApp(graInfo); }
public class GraAppServiceImpl extends BaseServiceImpl implements GraAppService{ public boolean addGraduateApp(GraAppInfo info) { this.getBaseDAO().save(info); return true; } }
dao类save方法为
getHibernateTemplate().save(obj);
当cascade="all",插入new college 除了id和原来的记录一样,其他的字段全部都被更新,为null
当cascase=“insert”,插入new college 只会把它的id插入grainfo表中,其他字段不变。
17、
java.sql.SQLException: Unable to convert between java.lang.Integer and BLOB.因为
<property name="province" type="com.xindeco.business.pojo.SysCode"//不能用复杂类, update="true" insert="true" access="property" column="provinceId" />应该改为
<many-to-one name="province" class="com.xindeco.business.pojo.SysCode" cascade="none" outer-join="auto" update="true" insert="true" access="property" column="provinceId" />
18、
javax.servlet.jsp.JspException: Cannot create iterator for this collection at org.apache.struts.taglib.logic.IterateTag.doStartTag(IterateTag.java:265)
jsp文件如下:
<logic:notEmpty name="graduateList" > <logic:iterate id="graduate" name="graduateList" > </ogic:notEmpty > </ogic:iterat>graduateList是一个类,而logic:iterator要求必须是ArrayList,HashSet....这样的集合类,而graduateList中一个属性是ArrayList或HashSet的
应改为:
<logic:notEmpty name="graduateList" property="items">
<logic:iterate id="graduate" name="graduateList" property="items" >
</ogic:notEmpty >
</ogic:iterat>
19、
2006-05-11 17:13:37,468 ERROR com.xindeco.business.web.action.GraAppAction - com.xindeco.business.web.action.GraAppAction@bc22eb org.hibernate.LazyInitializationException: could not initialize proxy - the owning Session was closed
SysUser user= (SysUser) request.getSession().getAttribute(WebConstants.SESSION_USER);
System.out.println(user.getRole().getRoleName());
当hibernate session取出数据放到http session时,
由于sysuser中role的lazy=“true”,所以没有将RoleName放到http session中,当System.out.println(user.getRole().getRoleName());
时,虽然http session还开着, hibernat seesion已经关闭
<many-to-one name="role" class="com.xindeco.business.pojo.SysRole" lazy="false" cascade="none" outer-join="auto" update="true" insert="true" access="property" column="roleID" />
20、
Association references unmapped class: com.xindeco.workflow.WFNode因为application.xml文件中没有配置<mapping resource="com/xindeco/workflow/WFNode.hbm.xml"/>
系统找不到WFNode
< set name = " nodes " table = " WF_ROLENODES " lazy = " true " inverse = " false " cascade = " none " sort = " unsorted " > < key column = " roleID " > </ key > < many - to - many class = " com.xindeco.workflow.WFNode " column = " nodeId " outer - join = " auto " /> <set >
评论
3 楼
shangyixue
2015-12-23
受益了
2 楼
zengbailan
2010-08-10
总结的不错,支持了。
1 楼
zhangxu3739
2008-11-25
不错
受益了 ........
受益了 ........
发表评论
-
JSP和Servlet之间跳转
2012-11-30 11:09 13981)比如从index.jsp页面跳到main文件夹下的list ... -
JPA 表生成器@ TableGenerator
2011-09-13 22:13 1122将当前主键的值单独保存到一个数据库的表中,主键的值每次都是从指 ... -
SpringMVC 中实体类父子类关系设置
2011-08-23 00:03 1561SpringMVC 中实体类父子类关系设置 父类: @E ... -
FreeMarker+struts学习内置函数
2009-06-03 00:42 2285FreeMarker struts2 笔记 它是模板引擎 下 ... -
Spring自动装配(autowire)协作者
2009-05-12 18:11 1705在xml配置文件中,autowire有5种类型,可以在< ... -
JAVA系统架构技术
2008-09-11 00:20 3728------------------------------- ... -
J2EE中 过滤器应用
2008-07-03 00:41 3401一 页面编码过滤器 1.开发EncodingFilter.j ... -
『转姚博文』提高hibernate性能 很经典
2008-06-24 17:10 1447在一个拥有单独业务层 ... -
『hibernate学习』hibernate最原始的方法取得count(*)
2008-06-18 13:47 1364Hibernate 如何使用count(*) p ... -
J2EE 中文乱码攻略
2008-06-14 21:18 2056一.GBK与UTF8的比较 GBK的 ... -
J2EE 13种核心技术
2008-06-14 20:04 2581STEVEN GOULD在文中介绍了J ... -
org.hibernate.MappingException
2008-06-07 18:10 2942org.hibernate.MappingException: ... -
AOP 的利器:ASM 3.0 介绍
2008-06-07 17:42 14062007 年 7 月 25 日 随着 A ...
相关推荐
源码分析主要涉及以下几个关键点: 1. **持久化机制**:Hibernate的核心在于实体类与数据库表之间的映射,通过Hibernate的配置文件和注解,我们可以定义对象与数据库表的对应关系。 2. **Session接口**:它是...
我们可以从中提取并展开多个与Java实习相关的知识点,包括但不限于实习初期的心理状态调整、解决技术问题的过程、与客户的沟通技巧以及Java Web开发中的关键技术框架(Struts、Spring 和 Hibernate)。下面将详细...
一个完整的DRP通常包括以下几个关键部分: 1. **风险评估**:识别可能对业务造成影响的潜在威胁,包括硬件故障、软件错误、网络中断等。 2. **备份策略**:定期对数据进行备份,确保在灾难发生后能够快速恢复。 3. ...
本文将深入解析一个与Java Web应用开发相关的错误代码示例,该示例涉及到Struts、Spring、Hibernate框架以及Apache Tomcat服务器的配置和运行时问题。 ### 错误代码分析 #### Apache Tomcat Native Library未找到 ...
在项目经验部分,仝照美参与并独立完成了几个项目,包括骑士飞行棋控制台应用、品红网站和当当网模拟项目。这些项目涵盖了从简单的控制台游戏到复杂的企业级网站开发,显示了他的实际操作能力和问题解决技巧。在项目...
从这段实习总结中,我们可以提炼出几个关键的知识点: 1. **技术栈应用**:实习生最初参与的项目使用了Struts、MySQL、Spring和Hibernate等技术,这些都是Java Web开发中的常见框架,体现了软件工程中的分层架构...
描述中的“还有几个java程序才能通过啊 为什么这么难”表达了学习者在面对Java编程挑战时的困扰,这可能是由于Java语法的复杂性、面向对象的概念理解难度,或者是具体问题的解决策略尚未掌握。 Java的基础知识点...
在Java、SSH(Struts2、Spring、Hibernate)和技术环境(TE)的标签下,我们可以推断本书着重讨论了以下几个关键知识点: 1. **Java编程语言**:Java是构建大型网站后端服务的主流语言,其面向对象特性、丰富的类库...
此外,项目实施过程中遇到的问题和解决方案,也是宝贵的学习经验,它教会我们如何面对挑战,如何有效地利用资源解决问题。 总之,“Java实训报告”不仅是一份关于时钟动画项目的技术文档,更是学习Java编程、软件...
在这个综合实战的客户管理系统中,我们主要关注以下几个关键知识点: 1. **用户管理功能**:系统的核心在于用户管理,包括管理员注册、注册验证、登录、退出、用户添加、修改、删除以及浏览用户信息等。这些功能是...
在实际分析压缩包内的文件时,我们应关注以下几个方面: 1. **项目结构**:了解项目的目录结构,包括src、lib、web-inf等关键目录的作用,这对于理解和维护项目至关重要。 2. **配置文件**:如web.xml、pom.xml等,...
#### 几个关键因素导致PermGen Space溢出: 1. **第三方库**:使用某些第三方库(如proxool、cglib等)可能由于其内部机制大量消耗PermGen Space。 2. **日志框架**:如log4j或其他日志系统,若不适当配置,也可能...
系统主要分为以下几个层次: - **展示层**:主要包括JSP、JS和各类界面控件,采用AJAX和Flex等RIA技术提升用户体验。 - **控制层**:处理展示层请求的转发、调度以及基础验证,自动拦截并处理后台运行时异常。 - **...
异构数据库的导入导出一直是个大难题,一般的工具配置复杂,尤其是不支持LOB这样的大字段数据,我们的这个工具不仅配置简单,而且具有以下几个特点。 1、速度非常快,这个因为取决于系统环境,这个只有谁用...
在编程过程中,一个小的符号错误或拼写错误都可能导致程序无法正常运行。how2j.cn网站的代码比较功能非常实用,允许用户将自己的代码与正确的代码进行比对,快速定位错误,这对于初学者来说是很好的辅助工具,能够...
要实现这一功能,我们可能需要以下几个关键组件: 1. **数据库设计**:为了存储超级英雄的数据,我们需要设计一个数据库模型。这可能包含表如`SuperHero`(包含英雄的基本信息,如名字、真实身份等)和`Power`...
在这个Java测试示例中,我们可以学习到以下几个关键知识点: 1. **单元测试**:单元测试是对程序中最小可测试单元进行检查和验证,如函数、方法或类。使用JUnit这样的框架,我们可以编写测试用例来验证特定方法的...