国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁技術(shù)文章
文章詳情頁

java - SSH 根據(jù)id字段不能更新數(shù)據(jù)問題

瀏覽:78日期:2023-11-08 13:43:41

問題描述

org.springframework.dao.DataIntegrityViolationException: not-null property references a null or transient value: com.lcy.po.AuthorAdmin.authorUsername; nested exception is org.hibernate.PropertyValueException: not-null property references a null or transient value: com.lcy.po.AuthorAdmin.authorUsername at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:648) at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412) at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:411) at org.springframework.orm.hibernate3.HibernateTemplate.executeWithNativeSession(HibernateTemplate.java:374) at org.springframework.orm.hibernate3.HibernateTemplate.update(HibernateTemplate.java:705) at org.springframework.orm.hibernate3.HibernateTemplate.update(HibernateTemplate.java:701) at com.lcy.dao.author.admin.AuthorAdminDaoImpl.updateAuthorAdmin(AuthorAdminDaoImpl.java:48) at com.lcy.service.author.admin.AuthorAdminServiceImpl.updateAuthorAdmin(AuthorAdminServiceImpl.java:47) at com.lcy.action.author.admin.AuthorAdminAction.updateAuthorAdmin(AuthorAdminAction.java:124) 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:597) at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:452) at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:291) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:254) at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:176) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:263) at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:133) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:207) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:190) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.MultiselectInterceptor.intercept(MultiselectInterceptor.java:75) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:94) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:243) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:100) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:141) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:267) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:142) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:166) at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:176) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:164) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:190) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:187) at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:248) at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52) at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:485) at org.apache.struts2.dispatcher.ng.ExecuteOperations.executeAction(ExecuteOperations.java:77) at org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter.doFilter(StrutsPrepareAndExecuteFilter.java:91) at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235) at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206) at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:230) at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:175) at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128) at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:104) at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109) at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:261) at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844) at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:581) at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447) at java.lang.Thread.run(Thread.java:619)Caused by: org.hibernate.PropertyValueException: not-null property references a null or transient value: com.lcy.po.AuthorAdmin.authorUsername at org.hibernate.engine.Nullability.checkNullability(Nullability.java:95) at org.hibernate.event.def.DefaultFlushEntityEventListener.scheduleUpdate(DefaultFlushEntityEventListener.java:292) at org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:151) at org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219) at org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99) at org.hibernate.event.def.DefaultFlushEventListener.onFlush(DefaultFlushEventListener.java:49) at org.hibernate.impl.SessionImpl.flush(SessionImpl.java:1028) at org.springframework.orm.hibernate3.HibernateAccessor.flushIfNecessary(HibernateAccessor.java:390) at org.springframework.orm.hibernate3.HibernateTemplate.doExecute(HibernateTemplate.java:407) ... 71 more

dao的方法

public void updateAuthorAdmin(AuthorAdmin aa) {try { basedao.getTemplate().update(aa); System.out.println('dao updateAuthorAdmin suc');} catch (Exception e) { System.out.println('dao updateAuthorAdmin error'); e.printStackTrace(); throw new RuntimeException();}@Override public AuthorAdmin getAuthorAdmin(Long id) {AuthorAdmin authorAdmin = basedao.getTemplate().get(AuthorAdmin.class,id);if (authorAdmin == null) { System.out.println('dao getAuthorAdmin沒有獲得對象');}System.out.println('dao getAuthorAdmin成功獲得對象');return authorAdmin; }

action層

public class AuthorAdminAction extends BaseAction implementsModelDriven<AuthorAdmin>{private AuthorAdmin authoradmin = new AuthorAdmin(); @Override public AuthorAdmin getModel() {return authoradmin; }public String getAuthorAdmin() {authoradmin= iauthoradminservice.getAuthorAdmin(authoradmin.getAuthorId());System.out.println('action getAuthorAdmin suc');return 'getSuccess'; }public String updateAuthorAdmin() {iauthoradminservice.updateAuthorAdmin(authoradmin);System.out.println('action updateAuthorAdmin suc');return 'updateSuccess'; }}

JSP頁面根據(jù)id跳轉(zhuǎn)

<a href='http://m.cgvv.com.cn/wenda/${pageContext.request.contextPath}/get_AuthorAdmin?authorId=<s:property value='#obj.authorId'/>'></a>

進(jìn)入修改表單

<s:form action='update_AuthorAdmin' method='post'><s:hidden name='authorId' value='%{model.authorId}'></s:hidden><s:textfield name='%{model.authorUsername}' label='用戶名'></s:textfield><s:textfield name='%{model.authorPwd}' label='密碼'></s:textfield><s:textfield name='%{model.authorName}' label='姓名'></s:textfield><s:textfield name='%{model.authorSex}' label='性別'></s:textfield><s:textfield name='%{model.authorBirth}' label='生日'></s:textfield><s:textfield name='%{model.authorRegion}' label='作者區(qū)域'></s:textfield><s:textfield name='%{model.authorAddress}' label='通訊地址'></s:textfield><s:textfield name='%{model.authorPost}' label='職稱'></s:textfield><s:textfield name='%{model.authorJob}' label='職業(yè)'></s:textfield><s:textfield name='%{model.authorCompany}' label='工作單位'></s:textfield><s:textfield name='%{model.authorDegree}' label='學(xué)歷'></s:textfield><s:textfield name='%{model.authorMajor}' label='專業(yè)方向'></s:textfield><s:textfield name='%{model.authorTitle}' label='文章標(biāo)題'></s:textfield><s:textfield name='%{model.authorMail}' label='E-mail'></s:textfield><s:textfield name='%{model.authorPhone}' label='電話'></s:textfield><s:textfield name='%{model.authorInfo}' label='個(gè)人簡介'></s:textfield><s:submit value='修改'></s:submit> </s:form>

struct2.xml

<package name='authorAdmin' extends='struts-default'><action name='*_*' method='{1}{2}'> <result name='saveSuccess' type='redirectAction'>list_{2}.action</result> <result name='updateSuccess' type='redirectAction'>list_{2}.action</result> <result name='loginSuccess' type='redirectAction'>list_{2}.action</result> <result name='removeSuccess' type='redirectAction'>list_{2}.action</result> <result name='listSuccess'>/{2}/{1}/{1}Success.jsp</result> <result name='getSuccess'>/{2}/update/update.jsp</result></action> </package>

實(shí)體類的字段還有映射

private Long authorId; private String authorUsername; private String authorPwd; private String authorName; private String authorSex; private String authorBirth; private String authorRegion; private String authorAddress; private String authorPost; private String authorJob; private String authorCompany; private String authorDegree; private String authorMajor; private String authorTitle; private String authorMail; private String authorPhone; private String authorInfo; private Timestamp gmtCreate; private Timestamp gmtModified; private Set documentInfos = new HashSet(0);

<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-mapping PUBLIC '-//Hibernate/Hibernate Mapping DTD 3.0//EN''http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd'><!-- Mapping file autogenerated by MyEclipse Persistence Tools--><hibernate-mapping> <class name='com.lcy.po.AuthorAdmin' table='author_admin' catalog='ssh'><id name='authorId' type='java.lang.Long'> <column name='author_id' /> <generator /></id><property name='authorUsername' type='java.lang.String'> <column name='author_username' length='20' not-null='true'><comment>用戶名</comment> </column></property><property name='authorPwd' type='java.lang.String'> <column name='author_pwd' length='20' not-null='true'><comment>密碼</comment> </column></property><property name='authorName' type='java.lang.String'> <column name='author_name' length='20'><comment>姓名</comment> </column></property><property name='authorSex' type='java.lang.String'> <column name='author_sex' length='2'><comment>性別</comment> </column></property><property name='authorBirth' type='java.lang.String'> <column name='author_birth' length='20'><comment>生日</comment> </column></property><property name='authorRegion' type='java.lang.String'> <column name='author_region' length='50'><comment>作者區(qū)域</comment> </column></property><property name='authorAddress' type='java.lang.String'> <column name='author_address' length='100'><comment>通訊地址</comment> </column></property><property name='authorPost' type='java.lang.String'> <column name='author_post' length='50'><comment>職稱</comment> </column></property><property name='authorJob' type='java.lang.String'> <column name='author_job' length='50'><comment>職業(yè)</comment> </column></property><property name='authorCompany' type='java.lang.String'> <column name='author_company' length='50'><comment>工作單位</comment> </column></property><property name='authorDegree' type='java.lang.String'> <column name='author_degree' length='40'><comment>學(xué)歷</comment> </column></property><property name='authorMajor' type='java.lang.String'> <column name='author_major' length='50'><comment>專業(yè)方向</comment> </column></property><property name='authorTitle' type='java.lang.String'> <column name='author_title' length='20'><comment>文章標(biāo)題</comment> </column></property><property name='authorMail' type='java.lang.String'> <column name='author_mail' length='100'><comment>E-mail</comment> </column></property><property name='authorPhone' type='java.lang.String'> <column name='author_phone' length='11'><comment>電話</comment> </column></property><property name='authorInfo' type='java.lang.String'> <column name='author_info' length='65535'><comment>個(gè)人簡介</comment> </column></property><property name='gmtCreate' type='java.sql.Timestamp'> <column name='gmt_create' length='19'><comment>創(chuàng)建時(shí)間</comment> </column></property><property name='gmtModified' type='java.sql.Timestamp'> <column name='gmt_modified' length='19'><comment>修改時(shí)間</comment> </column></property><set name='documentInfos' inverse='true'> <key><column name='author_id' not-null='true'> <comment>稿件作者</comment></column> </key> <one-to-many /></set> </class></hibernate-mapping>

問題解答

回答1:

先看一下報(bào)錯(cuò),authorUsername是一個(gè)non-null屬性,有一個(gè)非空校驗(yàn),你提交了個(gè)空值,所以報(bào)錯(cuò)了。可能導(dǎo)致的原因:

1.表單無輸入,或輸入錯(cuò)誤2.屬性名稱前后不匹配,傳遞過程中,賦值失敗,造成丟值3.臟數(shù)據(jù),讀取出來的數(shù)據(jù)存在問題,更新插入的時(shí)候空值失敗回答2:

看下basedao的方法吧

標(biāo)簽: java
相關(guān)文章:
主站蜘蛛池模板: 国产成人免费高清激情视频 | 国内自拍在线视频高清 | 欧美激情综合亚洲五月蜜桃 | 亚洲免费视频在线 | 国产精品一二区 | 国产亚洲福利精品一区二区 | 久久国产精品无码网站 | 亚洲国产精品二区久久 | 99亚洲精品| 午夜国产亚洲精品一区 | 精品久久免费观看 | 综合久久91| 日韩中文字幕在线观看 | 久草视频新 | 一本色道久久综合 | 麻豆传媒一区 | 亚州精品视频 | 黄网站色视频免费观看w | 久久91精品国产一区二区 | 成年人三级网站 | 曰韩毛片 | 神马午夜不卡 | 欧美色欧 | 国产亚洲精品成人a在线 | 日韩欧美亚洲天堂 | 免费岛国小视频在线观看 | 国内精品1区1区3区4区 | 欧美三级一区二区三区 | 欧美特黄一区二区三区 | 国产欧美日本在线观看 | 成人毛片免费播放 | 久久久精品一区二区三区 | 久久久精品视频免费观看 | 波多野在线视频 | 欧美高清色视频在线播放 | 91www成人久久 | 九九99香蕉在线视频免费 | 精品在线网站 | 成人毛片免费观看视频大全 | 国产一区二区三区在线观看精品 | 久久99国产一区二区三区 |