获取bean后对象为null

时间:2018-08-16 13:27:20

标签: java spring hibernate spring-boot

我有一个dao对象,在dao对象中,我有以下代码: 当我得到豆MyDao时,该对象为null。如果我删除@Transient批注,它可以工作,但随后在updateUser上失败,因为它显示transactionRequiredException。有谁知道如何解决这一问题?谢谢。

@Service
    public abstract class MyDao extends HibernateDaoSupport {
           protected Integer batchSize;

           public Integer getBatchSize() {
                return batchSize;
            }
           public void setBatchSize(Integer batchSize) {
                this.batchSize = batchSize;
           }

           @Transient
           public void updateUser() {
                 String deleteHQL = "delete from users";
                 this.getHibernateTemplate().bulkUpdate(); 

            }

}

Bean:

<bean id="myDao" name="dao" class="com.project.MyDao">
    <aop:scoped-proxy proxy-target-class="true" />
        <property name="batchSize" value="5000" />
    </bean> 

我用@ Service,@ Component注释了该类,并且只要@Transactional在该方法上,该对象仍为null。 我在调试模式下运行了此命令,以查看是否正在调用getter / setter,而实际上,该对象只是返回空属性,如下所示: enter image description here

编辑: 当我调用TextDao testDao =(TestDao)myContext.getBean(“ testDao”);通过@Transactional,我看到了:

enter image description here

没有@Transactional我看到了:

enter image description here

当我创建dao对象时,构造函数和设置方法不会调用updateNames。这是我遇到的问题,我不太确定问题是什么。

0 个答案:

没有答案