@Transactional 默认为readOnly=true

This commit is contained in:
Calvin
2012-02-29 12:02:27 +08:00
parent cd53dfcbb3
commit b73e599e2f
3 changed files with 9 additions and 17 deletions
@@ -28,26 +28,23 @@ import com.google.common.collect.Maps;
//Spring Service Bean的标识.
@Component
//默认将类中的所有函数纳入事务管理.
@Transactional
@Transactional(readOnly = true)
public class AccountManager {
private AccountDao accountDao = null;
private Validator validator = null;
@Transactional(readOnly = true)
public Department getDepartmentDetail(Long id) {
Validate.notNull(id, "id参数为空");
return accountDao.getDepartmentDetail(id);
}
@Transactional(readOnly = true)
public User getUser(Long id) {
Validate.notNull(id, "id参数为空");
return accountDao.getUser(id);
}
@Transactional(readOnly = true)
public List<User> searchUser(String loginName, String name) {
Map<String, Object> parameters = Maps.newHashMap();
parameters.put("loginName", loginName);
@@ -55,6 +52,7 @@ public class AccountManager {
return accountDao.searchUser(parameters);
}
@Transactional(readOnly = false)
public Long saveUser(User user) throws ConstraintViolationException {
Validate.notNull(user, "用户参数为空");
//使用Hibernate Validator校验请求参数
@@ -24,7 +24,7 @@ import org.springside.examples.miniweb.service.ServiceException;
//Spring Bean的标识.
@Component
//默认将类中的所有public函数纳入事务管理.
@Transactional
@Transactional(readOnly = true)
public class AccountManager {
private static Logger logger = LoggerFactory.getLogger(AccountManager.class);
@@ -34,11 +34,11 @@ public class AccountManager {
private ShiroDbRealm shiroRealm;
//-- User Manager --//
@Transactional(readOnly = true)
public User getUser(Long id) {
return userDao.findOne(id);
}
@Transactional(readOnly = false)
public void saveUser(User entity) {
userDao.save(entity);
shiroRealm.clearCachedAuthorizationInfo(entity.getLoginName());
@@ -47,6 +47,7 @@ public class AccountManager {
/**
* 删除用户,如果尝试删除超级管理员将抛出异常.
*/
@Transactional(readOnly = false)
public void deleteUser(Long id) {
if (isSupervisor(id)) {
logger.warn("操作员{}尝试删除超级管理员用户", SecurityUtils.getSubject().getPrincipal());
@@ -62,32 +63,30 @@ public class AccountManager {
return id == 1;
}
@Transactional(readOnly = true)
public List<User> getAllUser() {
return (List<User>) userDao.findAll(new Sort(Direction.ASC, "id"));
}
@Transactional(readOnly = true)
public User findUserByLoginName(String loginName) {
return userDao.findByLoginName(loginName);
}
//-- Group Manager --//
@Transactional(readOnly = true)
public Group getGroup(Long id) {
return groupDao.findOne(id);
}
@Transactional(readOnly = true)
public List<Group> getAllGroup() {
return (List<Group>) groupDao.findAll((new Sort(Direction.ASC, "id")));
}
@Transactional(readOnly = false)
public void saveGroup(Group entity) {
groupDao.save(entity);
shiroRealm.clearAllCachedAuthorizationInfo();
}
@Transactional(readOnly = false)
public void deleteGroup(Long id) {
groupDao.delete(id);
shiroRealm.clearAllCachedAuthorizationInfo();
@@ -25,6 +25,7 @@ import org.springside.modules.utils.security.Digests;
*/
//Spring Service Bean的标识.
@Component
@Transactional(readOnly = true)
public class AccountManager {
private static Logger logger = LoggerFactory.getLogger(AccountManager.class);
@@ -47,7 +48,7 @@ public class AccountManager {
*
*/
//演示指定非默认名称的TransactionManager.
@Transactional("defaultTransactionManager")
@Transactional(readOnly = false)
public void saveUser(User user) {
if (isSupervisor(user)) {
@@ -74,7 +75,6 @@ public class AccountManager {
return (user.getId() != null && user.getId() == 1L);
}
@Transactional(readOnly = true)
public User getUser(Long id) {
return userHibernateDao.get(id);
}
@@ -82,7 +82,6 @@ public class AccountManager {
/**
* 取得用户, 并对用户的延迟加载关联进行初始化.
*/
@Transactional(readOnly = true)
public User getInitializedUser(Long id) {
if (memcachedClient != null) {
return getUserFromMemcached(id);
@@ -118,7 +117,6 @@ public class AccountManager {
/**
* 按名称查询用户, 并对用户的延迟加载关联进行初始化.
*/
@Transactional(readOnly = true)
public User searchInitializedUserByName(String name) {
User user = userHibernateDao.findUniqueBy("name", name);
userHibernateDao.initUser(user);
@@ -128,7 +126,6 @@ public class AccountManager {
/**
* 取得所有用户, 预加载用户的角色.
*/
@Transactional(readOnly = true)
public List<User> getAllUserWithRole() {
List<User> list = userHibernateDao.getAllUserWithRoleByDistinctHql();
logger.info("get {} user sucessful.", list.size());
@@ -138,12 +135,10 @@ public class AccountManager {
/**
* 获取当前用户数量.
*/
@Transactional(readOnly = true)
public Long getUserCount() {
return userHibernateDao.getUserCount();
}
@Transactional(readOnly = true)
public User findUserByLoginName(String loginName) {
return userHibernateDao.findUniqueBy("loginName", loginName);
}