我有一个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,而实际上,该对象只是返回空属性,如下所示:
编辑: 当我调用TextDao testDao =(TestDao)myContext.getBean(“ testDao”);通过@Transactional,我看到了:
没有@Transactional我看到了:
当我创建dao对象时,构造函数和设置方法不会调用updateNames。这是我遇到的问题,我不太确定问题是什么。