2011-12-05 8 views
0

私は春には新しく、私のEclipseには3つのプロジェクトがあります。 1つのJPA.jar、client.jar、およびWeb.war。 これらをTomcat 6にデプロイするつもりです。そのため、すべての依存関係は主にWeb.warにあります。 私の問題は、ここでSpring 3を使用してDAOのQueryオブジェクトによってNullPointerExceptionが返されるMVC

。私は、Oracleデータベースにデータを永続化することができますが、私は(選択)DAOでのQueryオブジェクトからデータを取得することはできません:(ことです私のサーブレット・コンテキストが

ですここで

</beans:bean> 
         <!-- Oracle Driver --> 
<beans:bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <beans:property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/> 
    <beans:property name="url" value="jdbc:oracle:thin:@//sapodev.sapo.co.za:1523/P3P"/> 
    <beans:property name="username" value="pensions"/> 
    <beans:property name="password" value="pensions"/> 

</beans:bean> 

<!-- JPA EntityManagerFactory -->   
<beans:bean id="entityManagerFactory" 
    class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean"> 

    <beans:property name="persistenceUnitName" value="frameworkPU"/> 
    <beans:property name="dataSource" ref="dataSource"/> 
    <beans:property name="jpaVendorAdapter"> 
     <beans:bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"> 
      <beans:property name="showSql" value="true"/> 
      <!-- <property name="generateDdl" value="false"/> --> 
      <beans:property name="databasePlatform" value="org.hibernate.dialect.Oracle10gDialect"/> 
     </beans:bean> 
    </beans:property> 
</beans:bean> 

<beans:bean id="transactionManager" class="org.springframework.orm.jpa.JpaTransactionManager"> 
    <beans:property name="entityManagerFactory" ref="entityManagerFactory" /> 
    <beans:property name="dataSource" ref="dataSource"/> 
</beans:bean> 

<beans:bean id="persistenceAnnotation" class="org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor" /> 
<beans:bean id="contactService" class="za.co.sapo.service.ContactServiceImpl"/> 
    <context:component-scan base-package="za.co.sapo.controller" /> 
    <context:annotation-config /> 
    <context:component-scan base-package="za.co.sapo.dao"/> 
</beans:beans> 
は、サービスクラス

DAOクラスここ

public List<DevUserTab> findUsers() { 
    List<DevUserTab> list = null; 

    log.info("DD"); 
    try{ 
     TypedQuery<DevUserTab> query = this.entityManagerFactory.createNamedQuery("SELECT d from DevUserTab d", DevUserTab.class); 
     list= query.getResultList(); 
    } catch(Exception e){ 
     log.info(" EE"); 
     e.printStackTrace(); 
    } 
    return list; 
} 

されています

@Autowired 
public ContactDAO contactDAO; 
public List findUsers() { 
    // TODO Auto-generated method stub 
    ContactDAO contact = new ContactDAO(); 
    List users = contact.findUsers(); 
    return users; 
} 

私のコントローラ

@RequestMapping(value = "/table") 
public ModelAndView getContacts(Locale locale, Model model) { 
    logger.info("Getting the Contacts for us "+ locale.toString()); 

    ModelAndView mv = new ModelAndView("/table"); 
    try{ 
     List<Contact> objects = ServiceLayerContext.getContext().findContacts(); 
     mv.addObject("objects", objects); 
    } catch(Exception e){ 
     e.printStackTrace(); 
    } 
    return mv; 
} 
+1

完全なスタックトレースを提供できますか? –

+0

名前付きクエリを使用しようとしています。 – ptomli

答えて

0

createNamedQueryは、あなたがあなたのpersistence.xmlで構成されたクエリを参照されることを想定してい

あなたがやっているとして直接JPQLを指定するときは、 createQueryを使用する必要があります

メソッドを使用します。

関連する問題