我创建了一个负责通过dao与数据库联系的服务.我使用@Transactional注释来处理事务.
@Service("aclService")
public class HibernateAclServiceImpl implements HibernateAclService{
private final Log logger = LogFactory.getLog(HibernateAclServiceImpl.class);
@Autowired
private AclObjectIdentityDao objectIdentityDao ;
private PermissionFactory permissionFactory = new DefaultPermissionFactory();
@Autowired
private AclCache aclCache;
@Autowired
private PermissionGrantingStrategy grantingStrategy;
@Autowired
private AclAuthorizationStrategy aclAuthorizationStrategy;
private final Field fieldAces = FieldUtils.getField(AclImpl.class, "aces");
@Override
@Transactional
public List<ObjectIdentity> findChildren(ObjectIdentity parentIdentity) {
AclObjectIdentity aclObjectIdentity = objectIdentityDao
.get((Long) parentIdentity.getIdentifier());
List<ObjectIdentity> list = new ArrayList<ObjectIdentity>(
aclObjectIdentity.getChildren().size());
for (AclObjectIdentity aoid : aclObjectIdentity.getChildren()) {
final ObjectIdentity oid = new ObjectIdentityImpl(aoid.getObjectClass().getClazz());
list.add(oid);
}
return list; …Run Code Online (Sandbox Code Playgroud)