//实体bean,我省略了get,set方法。因为都是自动生成的//BaseMember.java
private Integer meId;
private String meName;
private Byte meSex;
private Integer meNational;
private Date meBirthday;
private String mePhoto;
private Set<Attendance> attendances = new HashSet<Attendance>(0);
private Set<Atteninfo> atteninfos = new HashSet<Atteninfo>(0);
private Set<Basicainfo> basicainfos = new HashSet<Basicainfo>(0);
private Set<Certificate> certificates = new HashSet<Certificate>(0);//BaseAttendance.java
private Integer atId;
private Member member;
private Admin admin;
private String atRes;//BaseAtteninfo.java
private Integer aiId;
private Member member;
private Admin admin;
private Curriculum curriculum;
private String atInfo;//BaseBasicainfo.java
private Integer biId;
private Positions positions;
private City city;
private Member member;
private Admin admin;
private Atitle atitle;
private Agents agents;
private Byte isMember;//BaseCertificate.java
private Integer ceId;
private Member member;
private String ceCode;
private Date ceDate;
private Byte isGetPhoto;
private Byte isGetCertcard;
private Byte isGetEducation;
private Byte isGetCard;
private Byte isGetPapers;
private String ceRes;对应的hbm.xml<!--Member-->
<hibernate-mapping package="net.cnyun.member.entity">
 <class name="Member" table="member">
  <id name="meId" type="java.lang.Integer">
   <column name="meID"/>
   <generator class="native"/>
  </id>
  <property generated="never" lazy="false" name="meName" type="java.lang.String">
   <column length="20" name="meName" not-null="true"/>
  </property>
  <property generated="never" lazy="false" name="meSex" type="java.lang.Byte">
   <column name="meSex" not-null="true"/>
  </property>
  <many-to-one name="meNational" class="National" fetch="select">
            <column name="meNational" />
        </many-to-one>
  <property generated="never" lazy="false" name="meBirthday" type="java.util.Date">
   <column length="10" name="meBirthday"/>
  </property>
  <property generated="never" lazy="false" name="mePhoto" type="java.lang.String">
   <column length="200" name="mePhoto"/>
  </property>
  <set inverse="true" name="attendances" sort="unsorted">
   <key>
    <column name="memberID"/>
   </key>
   <one-to-many class="net.cnyun.clazz.entity.Attendance"/>
  </set>
  <set inverse="true" name="atteninfos" sort="unsorted">
   <key>
    <column name="memberID"/>
   </key>
   <one-to-many class="net.cnyun.clazz.entity.Atteninfo"/>
  </set>
  <set inverse="true" name="basicainfos" sort="unsorted">
   <key>
    <column name="meID"/>
   </key>
   <one-to-many class="Basicainfo"/>
  </set>
  <set inverse="true" name="certificates" sort="unsorted">
   <key>
    <column name="memberID"/>
   </key>
   <one-to-many class="Certificate"/>
  </set>
 </class>
</hibernate-mapping>
<!--Attendance-->
<hibernate-mapping package="net.cnyun.clazz.entity">
 <class name="Attendance" table="attendance">
  <id name="atId" type="java.lang.Integer">
   <column name="atID"/>
   <generator class="native"/>
  </id>
  <many-to-one class="net.cnyun.member.entity.Member" fetch="select" name="member">
   <column name="memberID" not-null="true"/>
  </many-to-one>
  <many-to-one class="net.cnyun.core.entity.Admin" fetch="select" name="admin">
   <column name="staffID" not-null="true"/>
  </many-to-one>
  <property generated="never" lazy="false" name="atRes" type="java.lang.String">
   <column name="atRes"/>
  </property>
 </class>
</hibernate-mapping>
<!--Atteninfo-->
<hibernate-mapping package="net.cnyun.clazz.entity">
    <class name="Atteninfo" table="atteninfo">
        <id name="aiId" type="java.lang.Integer">
            <column name="aiID" />
            <generator class="native" />
        </id>
        <many-to-one name="member" class="net.cnyun.member.entity.Member" fetch="select">
            <column name="memberID" not-null="true" />
        </many-to-one>
        <many-to-one name="admin" class="net.cnyun.core.entity.Admin" fetch="select">
            <column name="adminID" not-null="true" />
        </many-to-one>
        <many-to-one name="curriculum" class="net.cnyun.member.entity.Curriculum" fetch="select">
            <column name="atID" not-null="true" />
        </many-to-one>
        <property name="atInfo" type="java.lang.String">
            <column name="atInfo" length="30" not-null="true" />
        </property>
    </class>
</hibernate-mapping>
<!--Basicainfo-->
<hibernate-mapping package="net.cnyun.member.entity">
 <class  name="Basicainfo" table="basicainfo">
  <id name="biId" type="java.lang.Integer">
   <column name="biID"/>
   <generator class="native"/>
  </id>
  <many-to-one class="Positions" fetch="select" name="positions">
   <column name="positionsID"/>
  </many-to-one>
  <many-to-one class="City" fetch="select" name="city">
   <column name="meLocation"/>
  </many-to-one>
  <many-to-one class="Member" fetch="select" name="member">
   <column name="meID"/>
  </many-to-one>
  <many-to-one class="net.cnyun.core.entity.Admin" fetch="select" name="admin">
   <column name="intnWorkr"/>
  </many-to-one>
  <many-to-one class="Atitle" fetch="select" name="atitle">
   <column name="atitleID"/>
  </many-to-one>
  <many-to-one class="net.cnyun.agents.entity.Agents" fetch="select" name="agents">
   <column name="intnAgents"/>
  </many-to-one>
  <property generated="never" lazy="false" name="isMember" type="java.lang.Byte">
   <column name="isMember"/>
  </property>
 </class>
</hibernate-mapping>
<!--Certificate-->
<hibernate-mapping package="net.cnyun.member.entity">
 <class name="Certificate" table="certificate">
  <id name="ceId" type="java.lang.Integer">
   <column name="ceID"/>
   <generator class="native"/>
  </id>
  <many-to-one class="Member" fetch="select" name="member">
   <column name="memberID" not-null="true"/>
  </many-to-one>
  <property generated="never" lazy="false" name="ceCode" type="java.lang.String">
   <column length="20" name="ceCode" not-null="true"/>
  </property>
  <property generated="never" lazy="false" name="ceDate" type="java.util.Date">
   <column length="10" name="ceDate" not-null="true"/>
  </property>
  <property generated="never" lazy="false" name="isGetPhoto" type="java.lang.Byte">
   <column name="isGetPhoto" not-null="true"/>
  </property>
  <property generated="never" lazy="false" name="isGetCertcard" type="java.lang.Byte">
   <column name="isGetCertcard" not-null="true"/>
  </property>
  <property generated="never" lazy="false" name="isGetEducation" type="java.lang.Byte">
   <column name="isGetEducation" not-null="true"/>
  </property>
  <property generated="never" lazy="false" name="isGetCard" type="java.lang.Byte">
   <column name="isGetCard" not-null="true"/>
  </property>
  <property generated="never" lazy="false" name="isGetPapers" type="java.lang.Byte">
   <column name="isGetPapers" not-null="true"/>
  </property>
  <property generated="never" lazy="false" name="ceRes" type="java.lang.String">
   <column name="ceRes"/>
  </property>
 </class>
</hibernate-mapping>
我在Struts的Action中进行Member的添加。一直抛空指针异常。我记得以前做过小例子,插入数据的时候并不需要考虑外键的操作。
类别表
   private Integer ptId;
     private String ptName;
     private Integer ptPhysical;
     private Integer ptInte;
     private Integer ptLove;
     private Set petses = new HashSet(0);
对象表
 private Integer petId;
     private Users users;
     private Pettype pettype;
     private String petName;在我插入某个类别的时候,我并不需要设置Set petses,直接获得类别名称等属性就可以插入。为什么在这里就一直抛空指针呢??是不是我的数据库设计有问题呢??

解决方案 »

  1.   

    错误信息是
    2009-8-26 11:25:19 org.apache.catalina.core.StandardWrapperValve invoke
    严重: Servlet.service() for servlet default threw exception
    java.lang.NullPointerException
    at net.cnyun.common.hibernate3.BaseManagerImpl.save(BaseManagerImpl.java:128)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:182)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:149)
    at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:106)
    at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:171)
    at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:204)
    at $Proxy31.save(Unknown Source)
    at net.cnyun.member.action.MemberOperAct.doInsert(MemberOperAct.java:55)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:404)
    at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:267)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:229)
    at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:221)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:150)
    at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:48)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:123)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.ParametersInterceptor.doIntercept(ParametersInterceptor.java:184)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.StaticParametersInterceptor.intercept(StaticParametersInterceptor.java:105)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at org.apache.struts2.interceptor.CheckboxInterceptor.intercept(CheckboxInterceptor.java:83)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at org.apache.struts2.interceptor.FileUploadInterceptor.intercept(FileUploadInterceptor.java:207)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.ModelDrivenInterceptor.intercept(ModelDrivenInterceptor.java:74)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.ScopedModelDrivenInterceptor.intercept(ScopedModelDrivenInterceptor.java:127)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at org.apache.struts2.interceptor.ProfilingActivationInterceptor.intercept(ProfilingActivationInterceptor.java:107)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
      

  2.   

    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:206)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.ChainingInterceptor.intercept(ChainingInterceptor.java:115)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.I18nInterceptor.intercept(I18nInterceptor.java:143)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.PrepareInterceptor.doIntercept(PrepareInterceptor.java:121)
    at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:86)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at org.apache.struts2.interceptor.ServletConfigInterceptor.intercept(ServletConfigInterceptor.java:155)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.AliasInterceptor.intercept(AliasInterceptor.java:123)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at com.opensymphony.xwork2.interceptor.ExceptionMappingInterceptor.intercept(ExceptionMappingInterceptor.java:176)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:224)
    at com.opensymphony.xwork2.DefaultActionInvocation$2.doProfiling(DefaultActionInvocation.java:223)
    at com.opensymphony.xwork2.util.profiling.UtilTimerStack.profile(UtilTimerStack.java:455)
    at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:221)
    at org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:50)
    at org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:504)
    at org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:424)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.orm.hibernate3.support.OpenSessionInViewFilter.doFilterInternal(OpenSessionInViewFilter.java:198)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.apache.struts2.dispatcher.ActionContextCleanUp.doFilter(ActionContextCleanUp.java:99)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:70)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
    at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:96)
    at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:76)
    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:233)
    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:102)
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:563)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:263)
    at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:844)
    at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:584)
    at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
    at java.lang.Thread.run(Unknown Source)
      

  3.   

    java.lang.NullPointerException 
    at net.cnyun.common.hibernate3.BaseManagerImpl.save(BaseManagerImpl.java:128) 
      

  4.   

    给出BaseManagerImpl save方法的代码和行号。
      

  5.   

    @Transactional
    public class BaseManagerImpl<T extends Serializable> implements BaseManager<T> {
    protected Logger log = LoggerFactory.getLogger(getClass());
    private BaseDao<T> dao;
    ....126 public T save(T entity) {
    127 return dao.save(entity);
    128 }....
    }
      

  6.   

    我在save方法里System了Member的
        private String meName;
        private Byte meSex;
        private Integer meNational;
        private Date meBirthday;
        private String mePhoto;
    这几个值,都不为空。但下一句语句就抛异常
      

  7.   

    128行是大括号?确定吗?
    在return 那行下个断点看看,dao 和 entity 里有个为空吧。
      

  8.   

    改了些地方,现在行号变动了。错误信息是return dao.save(entity); 这句抛出的。
      

  9.   

    private BaseDao <T> dao; dao你实例化了吗空指针肯定是没有实例化对象了
      

  10.   

    请问这个问题是什么原因引起的?我GG了一下,说是get方法和映射的地方类型不匹配造成的
    2009-08-26 01:59 ERROR org.hibernate.property.BasicPropertyAccessor - IllegalArgumentException in class: net.cnyun.member.entity.base.BaseNational, getter method of property: naId
      

  11.   


    这个问题解决了,原因是National和Member表是有主外建的联系。而我在页面是这么写的
    控件的名字是 member.meNational 这样虽然可以取到值,但会抛出异常而无法保存。只需将名字修改为member.meNational.naId就可以保存值了。
     <select name="member.meNational" id="member.meNational">
            <!-- <#if nationaList??>
    <#list nationaList as mz> -->
    <option value="${mz.naId}">${mz.national}</option>
    <!-- </#list>
    </#if>-->
            </select>谢谢楼上的朋友,现在结贴。之前的异常也是由于dao没能实例化造成,粗心引起的。在此谢过你们的帮助。