@Transactional 默认为readOnly=true
This commit is contained in:
+2
-4
@@ -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校验请求参数
|
||||
|
||||
+5
-6
@@ -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();
|
||||
|
||||
+2
-7
@@ -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);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user