2012-01-07 9 views
0

私は休止状態を使用しています。私は2つのテーブルを持っています:仕事と会社。Hibernate Association

Company.hbm.xmlは次のとおりです。

<class name="com.jobs.admin.data.Company" table="S_COMPANY"> 
    <id name="companyKid" column="COMPANY_KID" type="integer"> 
     <generator class="sequence"> 
      <param name="sequence">company_sequence</param> 
     </generator> 
    </id> 
    <property name="companyName" column="COMPANY_NAME" length="200" type="string" unique="true"/> 
    <property name="companyDesc" column="COMPANY_DESC" type="string" length="1000" unique="true" /> 
    <property name="companySName" column="COMPANY_SNAME" type="string" length="100"/> 
    <property name="companyMail" column="COMPANY_MAIL" type="string" length="200"/> 
    <property name="companyPhone" column="COMPANY_PHONE" type="string" length="200"/> 
</class> 

マイJob.hbm.xmlは次のとおりです。

<?xml version="1.0"?> 
<!DOCTYPE hibernate-mapping PUBLIC 
"-//Hibernate/Hibernate Mapping DTD 3.0//EN" 
"http://hibernate.sourceforge.net/hibernate-mapping-3.0.dtd"> 
<hibernate-mapping> 

    <class name="com.jobs.admin.data.Job" table="S_JOBS"> 
     <id name="jobKid" column="JOB_KID" type="integer"> 
      <generator class="sequence"> 
       <param name="sequence">job_sequence</param> 
      </generator> 
     </id> 
     <property name="jobTitle" column="JOB_TITLE" type="string"/> 
     <property name="jobDesc" column="JOB_DESC" type="string"></property> 
<!--  <property name="jobCompany" column="JOB_COMPANY" type="integer"></property>--> 
     <property name="jobCity" column="JOB_CITY" type="integer"></property> 
     <property name="jobExp" column="JOB_EXP" type="integer"></property> 
     <property name="jobCat" column="JOB_CAT" type="integer"></property> 
     <property name="jobStartDate" column="JOB_STARTDATE" type="string"></property> 
     <property name="jobEndDate" column="JOB_ENDDATE" type="string"></property> 
     <many-to-one name="jobCompany" class="com.jobs.admin.data.Company" column="JOB_COMPANY" property-ref="companyKid" ></many-to-one> 

    </class> 

</hibernate-mapping> 

これは私のメソッドのコードですこれらのテーブルを結合すること

List<com.jobs.admin.data.JobCat> jobCat= null; 
     db_session= HibernateSessionFactory.getSessionFactory().openSession(); 
     transaction=null; 
     try{ 
      transaction = db_session.beginTransaction(); 
      jobCat = db_session.createQuery("from Job as job inner join job.jobCompany as company").list(); 
      transaction.commit(); 
     } 
     catch (HibernateException e) { 
      transaction.rollback(); 
      e.printStackTrace(); 
      } finally { 
      db_session.close(); 
      } 
     return jobCat; 

私は、それは例外次のように私を与えている実行しています:

java.lang.NullPointerException 
    at org.hibernate.persister.entity.AbstractEntityPersister.loadByUniqueKey(AbstractEntityPersister.java:1662) 
    at org.hibernate.type.EntityType.loadByUniqueKey(EntityType.java:641) 
    at org.hibernate.type.EntityType.resolve(EntityType.java:415) 
    at org.hibernate.engine.TwoPhaseLoad.initializeEntity(TwoPhaseLoad.java:139) 
    at org.hibernate.loader.Loader.initializeEntitiesAndCollections(Loader.java:877) 
    at org.hibernate.loader.Loader.doQuery(Loader.java:752) 
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:259) 
    at org.hibernate.loader.Loader.doList(Loader.java:2232) 
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129) 
    at org.hibernate.loader.Loader.list(Loader.java:2124) 
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401) 
    at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363) 
    at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196) 
    at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149) 
    at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102) 
    at com.jobs.admin.service.JobImpl.getJobs(JobImpl.java:91) 
    at com.jobs.admin.controller.JobController.showViewJobs(JobController.java:64) 
    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 org.springframework.web.bind.annotation.support.HandlerMethodInvoker.doInvokeMethod(HandlerMethodInvoker.java:710) 
    at org.springframework.web.bind.annotation.support.HandlerMethodInvoker.invokeHandlerMethod(HandlerMethodInvoker.java:167) 
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.invokeHandlerMethod(AnnotationMethodHandlerAdapter.java:414) 
    at org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter.handle(AnnotationMethodHandlerAdapter.java:402) 
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:771) 
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:716) 
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:647) 
    at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:552) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:690) 
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:803) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290) 
    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) 

私のエラーが何であるか、私を提案してください?

+0

エラーがありますが、私が見るものはこの例外の原因ではありません。たとえば、リストはで、リストはではありません。内部結合はおそらくあなたが本当にやりたいことではありません。返されるジョブをjobCompanyを持つものに限定するだけです。この行でブレークポイントを設定し、デバッグして何が起きているのか試しましたか? –

答えて