当前位置: 首页 > 知识库问答 >
问题:

Hibernate ServiceImplementation引发NullPointerException

陶永望
2023-03-14
@Entity
@Table(name="apps_departaments")
public class Departament
{
    @Id
    @GeneratedValue
    private int id;

    @Column(name="dep_codi")
    private String CodDep;

    @Column(name="dep_nomc")
    private String nom;

    @Column(name="dep_nomm")
    private String nomCurt;
}
public interface DepartamentDAO
{
    public void afegirDepartament(Departament dep);
    public List<Departament> getDepartaments();
}

departamentdaoimpl.java

@Repository
public class DepartamentDAOImpl implements DepartamentDAO
{
    @Autowired
    private SessionFactory sessionFactory;

    public void afegirDepartament(Departament dep)
    {
        sessionFactory.getCurrentSession().save(dep);
    }

    public List<Departament> getDepartaments()
    {
        return (List<Departament>)(sessionFactory.getCurrentSession().createCriteria(Departament.class).list());
    }
}

departamentservice.java

public interface DepartamentService
{
    public void afegirDepartament(Departament dep);
    public List<Departament> getDepartaments();
}

DepartamentServiceImpl.java

@Service
@Transactional(propagation = Propagation.SUPPORTS, readOnly = true)
public class DepartamentServiceImp implements DepartamentService
{
    @Autowired
    private DepartamentDAO depDAO;

    @Transactional(propagation = Propagation.REQUIRED, readOnly = false)
    @Override
    public void afegirDepartament(Departament dep)
    {
        depDAO.afegirDepartament(dep);
    }

    @Override
    public List<Departament> getDepartaments() {
        return depDAO.getDepartaments();
    }
}
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:p="http://www.springframework.org/schema/p"
   xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/context
       http://www.springframework.org/schema/context/spring-context-3.0.xsd">

    <context:component-scan base-package="net.grupgirona.intranet" />
    <context:annotation-config />
    <context:property-placeholder location="classpath*:jdbc.properties"/>
    <import resource="webmvc-config.xml" />
    <import resource="webflow-config.xml" />
    <import resource="data-access-config.xml" />
</beans>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xmlns:tx="http://www.springframework.org/schema/tx"
   xmlns:p="http://www.springframework.org/schema/p"
   xsi:schemaLocation="
       http://www.springframework.org/schema/beans
       http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
       http://www.springframework.org/schema/tx
       http://www.springframework.org/schema/tx/spring-tx-3.0.xsd">

<tx:annotation-driven transaction-manager="transactionManager" />
<bean id="dataSource"
    class="org.springframework.jdbc.datasource.DriverManagerDataSource"
    p:driverClassName="${jdbc.driverClassName}"
    p:url="${jdbc.databaseurl}" p:username="${jdbc.username}"
    p:password="${jdbc.password}" />

<bean id="sessionFactory"
    class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
    <property name="dataSource" ref="dataSource" />
    <property name="configurationClass">
        <value>org.hibernate.cfg.AnnotationConfiguration</value>
    </property>
    <property name="hibernateProperties">
        <props>
            <prop key="hibernate.dialect">${jdbc.dialect}</prop>
            <prop key="hibernate.show_sql">true</prop>
            <prop key="hibernate.hbm2ddl.auto">update</prop>
        </props>
    </property>
    <property name="packagesToScan" value="net.grupgirona.dades"/>
  </bean>

  <bean id="transactionManager"
    class="org.springframework.orm.hibernate3.HibernateTransactionManager">
    <property name="sessionFactory" ref="sessionFactory" />
  </bean>
</beans>
DepartamentServiceImp dades = new DepartamentServiceImp();

共有1个答案

曾典
2023-03-14

你不能用这行

DepartamentServiceImp dades = new DepartamentServiceImp();

因为在DepartamentServiceImp中有一个@Autowired注释状态变量。

Spring不鼓励使用new关键字。您需要的所有实例都必须实例化并从spring上下文中检索。

 类似资料:
  • 问题内容: 我正在尝试使用IntelliJ 12.1.3使用JPA测试Hibernate 4.2.1.Final,但出现以下错误。 一切似乎都设置正确(我让IntelliJ生成了映射),由于我对Hibernate和JPA的经验为零,所以我无所适从。 为什么要启用NPE? 主类: 错误: Persistance.xml 问题答案: 该消息向我表明它无法连接到数据库。仔细检查您的连接字符串,并确保您的

  • 在我的Spring应用程序中,我使用StandardPasswordEncoder对用户密码进行编码。 我将用户数据保存在嵌入式H2数据库中。

  • 问题内容: 有人看过此消息吗? 在Hibernate论坛上进行了一些讨论,但对于问题可能是什么却不太清楚。 我们正在使用JPA和Spring 3.0.5运行Hibernate 3.6.9。这个异常只是在两个版本之间弹出(就像一天前一样,今天在部署时会引起问题)。这可能与某些错误配置的orm文件有关吗?我们为模型提供了orm.xml文件,为命名查询提供了文件。 问题答案: 因此,我们发现了问题。不幸

  • 问题内容: 我正在使用Spring Boot,Spring Data REST,Hibernate(5.2.12.Final),并将存储库公开为REST服务。 我有一个引发NullPointerException的查询问题,我不明白原因。我正在通过HTTP请求调用此方法(Spring Data REST公开了此方法)。 这是代码: 这是堆栈跟踪: 我确实没有发现该查询有任何问题。我是在做错什么还是

  • 我是一个在spring boot和ne04j的新蜂。我正在工作的项目包含两个模块web和core。web(包作为一个war)模块包含spring控制器和core(包作为一个jar)模块包含neo4j存储库和域。web模块包含作为一个jar的core模块。当我使用Java-jar web/target/my-project-1.0-snapshot.war运行项目时,它会抛出NullPointerE

  • 问题内容: 多次询问了这个问题,我已经尝试了全部。但不幸的是,两者都没有为我工作。 我正在尝试实现两个活动之间的导航,这是学习Android应用程序开发的一部分。我的最小SDK版本和目标SDK版本分别为11和21(Android 5)。我在AndroidManifest.xml中的设置如下所示: 我有两个活动:MainActivity和DetailActivity。当我单击MainActivity