public abstract class DAOSupport<T> implements DAO<T> { protected SessionFactory sf; @Transactional
public boolean del(T t) {
Session se = sf.openSession();
se.delete(t);
} public T query(int id, Class<T> clazz) {
Session se = sf.openSession();
return (T) se.get(clazz, id);
} @SuppressWarnings("unchecked")
public List<T> queryAll(String sql) {
Session se = sf.openSession();
Query query = se.createQuery(sql);
return query.list();
} @Transactional
public void save(T t) {
Session se = sf.openSession();
se.save(t);
} @Transactional
public void update(T t) {
Session se = sf.openSession();
se.update(t);
} public SessionFactory getSf() {
return sf;
} @Resource(name = "SessionFactory")
public void setSf(SessionFactory sf) {
this.sf = sf;
}}<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="SessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="txManager" proxy-target-class="true"/>我这样用了声明事务,可是只有存储数据的时候可以将数据存进去。。但是想要删除数据和更新数据都不行。。没有报什么错误。。就是数据删不掉很更新不进去。。问下各位这是怎么回事啊。。
public boolean del(T t) {
Session se = sf.openSession();
se.delete(t);
} public T query(int id, Class<T> clazz) {
Session se = sf.openSession();
return (T) se.get(clazz, id);
} @SuppressWarnings("unchecked")
public List<T> queryAll(String sql) {
Session se = sf.openSession();
Query query = se.createQuery(sql);
return query.list();
} @Transactional
public void save(T t) {
Session se = sf.openSession();
se.save(t);
} @Transactional
public void update(T t) {
Session se = sf.openSession();
se.update(t);
} public SessionFactory getSf() {
return sf;
} @Resource(name = "SessionFactory")
public void setSf(SessionFactory sf) {
this.sf = sf;
}}<bean id="txManager"
class="org.springframework.orm.hibernate3.HibernateTransactionManager">
<property name="sessionFactory" ref="SessionFactory" />
</bean>
<tx:annotation-driven transaction-manager="txManager" proxy-target-class="true"/>我这样用了声明事务,可是只有存储数据的时候可以将数据存进去。。但是想要删除数据和更新数据都不行。。没有报什么错误。。就是数据删不掉很更新不进去。。问下各位这是怎么回事啊。。
改为false就行了
比如 @Transactional (readOnly=false, isolation = Isolation.READ_COMMITTED)