我有一个使用Spring JDBC访问SQLite数据库的DAO类。我已经在DAO方法本身上声明了事务,因为我的服务层从不在事务中组合查询。春季交易及其与同步关键字的互动
因为我并行使用一些工作线程,但只有一个线程可以同时更新SQLite数据库,我使用序列化访问DAO。
起初,我从我的服务类外部同步,例如:
synchronized (dao) {
dao.update(...);
}
然后,我想我也可以摆脱外部同步,并把在DAO方法本身:
public synchronized void update(...) {
// Spring JDBC calls here
}
奇怪的是:我的查询现在需要两倍的时间!
为什么?
自从将服务方法同步到DAO方法后,它们需要两倍的时间? – MarianP 2012-02-22 09:02:42
@MarianP:正确。 – 2012-02-22 09:15:31