@SuppressWarnings("unchecked")
@Override
@Transactional(propagation = Propagation.MANDATORY)
public Map<Item, Bookmark> getBookmarksForItems(Collection<Item> items, String userId)
{
if( items.isEmpty() )
{
return Collections.emptyMap();
}
final List<Bookmark> bs = getHibernateTemplate().findByNamedParam(
"FROM Bookmark b WHERE b.item IN (:items) and b.owner = :ownerId", new String[]{"items", "ownerId"},
new Object[]{items, userId});
final Map<Item, Bookmark> rv = new HashMap<Item, Bookmark>();
for( Bookmark b : bs )
{
rv.put(b.getItem(), b);
}
return rv;
}
java类org.springframework.transaction.annotation.Propagation的实例源码
BookmarkDaoImpl.java 文件源码
项目:Equella
阅读 19
收藏 0
点赞 0
评论 0
AbstractEntityServiceImpl.java 文件源码
项目:Equella
阅读 31
收藏 0
点赞 0
评论 0
/**
* For REST calls or anything not using some sort of "session"
*
* @param entity
*/
@Transactional(propagation = Propagation.REQUIRED)
@Override
public void save(T entity, @Nullable TargetList targetList, @Nullable Map<Object, TargetList> otherTargetLists,
@Nullable String stagingUuid, @Nullable String lockId, boolean keepLocked) throws LockedException
{
if( entity.getId() == 0 )
{
final EntityPack<T> pack = new EntityPack<T>(entity, stagingUuid);
pack.setTargetList(targetList);
pack.setOtherTargetLists(otherTargetLists);
doAdd(pack, null, keepLocked);
}
else
{
doStopEditWithLock(entity, targetList, otherTargetLists, stagingUuid, lockId, !keepLocked);
}
}
UserRelationController.java 文件源码
项目:OMIPlatform
阅读 18
收藏 0
点赞 0
评论 0
@RequestMapping("/modifyRelation")
@Transactional(propagation = Propagation.REQUIRED)
public Message modifyRelation(@RequestBody List<UserRelation> relations) {
Message message = new Message();
if (relations != null && relations.size() > 0) {
try {
for (int i = 0; i < relations.size(); i++) {
if (relations.get(i).getUrid() != null) {
this.userRelationService.update(relations.get(i));
} else {
this.userRelationService.insert(relations.get(i));
}
}
} catch (Exception excption) {
excption.printStackTrace();
return message;
}
}
message.setStatus(1);
return message;
}
SystemService.java 文件源码
项目:dhus-core
阅读 27
收藏 0
点赞 0
评论 0
@PreAuthorize ("hasRole('ROLE_SYSTEM_MANAGER')")
@Transactional (readOnly=false, propagation=Propagation.REQUIRED)
public Configuration saveSystemSettings (Configuration cfg) throws
IllegalArgumentException, IllegalAccessException,
InvocationTargetException, CloneNotSupportedException
{
Configuration db_cfg = cfgDao.getCurrentConfiguration ();
cfg = cfg.completeWith (db_cfg);
db_cfg.setCronConfiguration (cfg.getCronConfiguration ());
db_cfg.setGuiConfiguration (cfg.getGuiConfiguration ());
db_cfg.setMessagingConfiguration (cfg.getMessagingConfiguration ());
db_cfg.setNetworkConfiguration (cfg.getNetworkConfiguration ());
db_cfg.setProductConfiguration (cfg.getProductConfiguration ());
db_cfg.setSearchConfiguration (cfg.getSearchConfiguration ());
db_cfg.setServerConfiguration (cfg.getServerConfiguration ());
db_cfg.setSystemConfiguration (cfg.getSystemConfiguration ());
cfgDao.update (db_cfg);
return cfgDao.getCurrentConfiguration ();
}
DaoHelper.java 文件源码
项目:NGB-master
阅读 24
收藏 0
点赞 0
评论 0
@Transactional(propagation = Propagation.MANDATORY)
public Long createTempList(final Long listId, final Collection<? extends BaseEntity> list) {
Assert.notNull(listId);
Assert.isTrue(CollectionUtils.isNotEmpty(list));
// creates a new local temporary table if it doesn't exists to handle temporary lists
getJdbcTemplate().update(createTemporaryListQuery);
// fills in a temporary list by given values
int i = 0;
final Iterator<? extends BaseEntity> iterator = list.iterator();
final MapSqlParameterSource[] batchArgs = new MapSqlParameterSource[list.size()];
while (iterator.hasNext()) {
MapSqlParameterSource params = new MapSqlParameterSource();
params.addValue(HelperParameters.LIST_ID.name(), listId);
params.addValue(HelperParameters.LIST_VALUE.name(), iterator.next().getId());
batchArgs[i] = params;
i++;
}
getNamedParameterJdbcTemplate().batchUpdate(insertTemporaryListItemQuery, batchArgs);
return listId;
}
UserService.java 文件源码
项目:dhus-core
阅读 28
收藏 0
点赞 0
评论 0
@Transactional (readOnly=false, propagation=Propagation.REQUIRED)
@Caching (evict = {
@CacheEvict(value = "user", allEntries = true),
@CacheEvict(value = "userByName", allEntries = true)})
public void resetPassword(String code, String new_password)
throws RootNotModifiableException, RequiredFieldMissingException,
EmailNotSentException
{
User u = userDao.getUserFromUserCode (code);
if (u == null)
{
throw new UserNotExistingException ();
}
checkRoot (u);
u.setPassword (new_password);
checkRequiredFields (u);
userDao.update (u);
}
VcfFileDao.java 文件源码
项目:NGB-master
阅读 20
收藏 0
点赞 0
评论 0
/**
* Load sample metadata from the database for all files, corresponding the given reference ID.
*
* @param vcfFileId {@code long} reference ID for which files samples were saved.
* @return {@code Map<Long, List<Sample>>} with file IDs for giver reference ID as keys, and with
* lists of samples, corresponding this file IDs as values.
*/
@Transactional(propagation = Propagation.MANDATORY)
public Map<Long, List<VcfSample>> loadSamplesForFilesByReference(long vcfFileId) {
Map<Long, List<VcfSample>> sampleFileMap = new HashMap<>();
getJdbcTemplate().query(loadSamplesForFilesByReferenceIdQuery, rs -> {
Long fileId = rs.getLong(SampleParameters.VCF_ID.name());
if (!sampleFileMap.containsKey(fileId)) {
sampleFileMap.put(fileId, new ArrayList<>());
}
VcfSample sample = new VcfSample();
sample.setId(rs.getLong(SampleParameters.VCF_SAMPLE_ID.name()));
sample.setName(rs.getString(SampleParameters.SAMPLE_NAME.name()));
sample.setIndex(rs.getInt(SampleParameters.ORDER_INDEX.name()));
sampleFileMap.get(fileId).add(sample);
}, vcfFileId);
return sampleFileMap;
}
AclDaoImpl.java 文件源码
项目:Equella
阅读 21
收藏 0
点赞 0
评论 0
@Override
@SuppressWarnings("unchecked")
@Transactional(propagation = Propagation.MANDATORY)
public List<ACLEntryMapping> getAllEntries(final Collection<String> privileges, Collection<String> targets)
{
return getHibernateTemplate().executeFind(new CollectionPartitioner<String, ACLEntryMapping>(targets)
{
@Override
public List<ACLEntryMapping> doQuery(Session session, Collection<String> collection)
{
Query query = session.getNamedQuery("getAllEntries");
query.setParameter("institution", CurrentInstitution.get());
query.setParameterList("targets", collection);
query.setParameterList("privileges", privileges);
return query.list();
}
});
}
ToolsControllerTest.java 文件源码
项目:NGB-master
阅读 25
收藏 0
点赞 0
评论 0
@Test
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void specifiedSortedFileShouldBeCreated() throws Exception {
File tempDirectory = getTempDirectory();
File toBeSorted = context.getResource("classpath:templates/" + UNSORTED_BED_NAME).getFile();
File copiedToBeSorted = new File(tempDirectory, UNSORTED_BED_NAME);
Files.copy(toBeSorted.toPath(), copiedToBeSorted.toPath());
File sortedPath = new File(tempDirectory, SPECIFIED_BED_NAME);
FeatureFileSortRequest request = new FeatureFileSortRequest();
request.setOriginalFilePath(copiedToBeSorted.getAbsolutePath());
request.setSortedFilePath(sortedPath.getAbsolutePath());
assertSortRequest(request, new Equals(sortedPath.getAbsolutePath()));
}
BiologicalDataItemDao.java 文件源码
项目:NGB-master
阅读 18
收藏 0
点赞 0
评论 0
/**
* Loads a List of BiologicalDataItem from the database by their IDs
* @param ids List of IDs of BiologicalDataItem instances
* @return List of BiologicalDataItem, matching specified IDs
*/
@Transactional(propagation = Propagation.MANDATORY)
public List<BiologicalDataItem> loadBiologicalDataItemsByIds(List<Long> ids) {
if (ids == null || ids.isEmpty()) {
return Collections.emptyList();
}
Long listId = daoHelper.createTempLongList(ids);
final MapSqlParameterSource params = new MapSqlParameterSource();
params.addValue(BiologicalDataItemParameters.BIO_DATA_ITEM_ID.name(), listId);
List<BiologicalDataItem> items = getNamedParameterJdbcTemplate().query(loadBiologicalDataItemsByIdsQuery,
params, getRowMapper());
daoHelper.clearTempList(listId);
return items;
}
AdminResourceServiceImpl.java 文件源码
项目:xproject
阅读 19
收藏 0
点赞 0
评论 0
@Transactional(rollbackFor=Exception.class, propagation=Propagation.REQUIRED)
public void updateResource(AdminResource resource) {
ValidationAssert.notNull(resource, "参数不能为空!");
ValidationAssert.notNull(resource.getResourceId(), "资源id不能为空!");
resource.setPermissionExpression(StringUtils.defaultIfEmpty(resource.getPermissionExpression(), null));
resource.setResourceUrl(StringUtils.defaultIfEmpty(resource.getResourceUrl(), null));
AdminResource presource = adminResourceMapper.selectThinResourceById(resource.getResourceId(), true);
ValidationAssert.notNull(presource, "该资源已经不存在了!");
try {
adminResourceMapper.updateResource(resource);
} catch(DuplicateKeyException e) {
BusinessAssert.isTrue(!e.getCause().getMessage().toUpperCase().contains("RESOURCE_NAME"), "修改资源失败,该资源名称已经存在!");
BusinessAssert.isTrue(!e.getCause().getMessage().toUpperCase().contains("PERMISSION_EXPRESSION"), "修改资源失败,该权限表达式已经存在!");
throw e;
}
}
HierarchyServiceImpl.java 文件源码
项目:Equella
阅读 23
收藏 0
点赞 0
评论 0
@Override
@Transactional(propagation = Propagation.REQUIRED)
@SecureOnCall(priv = "MODIFY_KEY_RESOURCE")
public void addKeyResource(HierarchyTreeNode node, ItemKey itemId)
{
final HierarchyTopic topic = getHierarchyTopic(node.getId());
final Item item = itemService.get(itemId);
List<Item> list = topic.getKeyResources();
if( list == null )
{
list = new ArrayList<Item>();
topic.setKeyResources(list);
}
if( !list.contains(item) )
{
list.add(item);
}
dao.saveOrUpdate(topic);
}
EntityLockingServiceImpl.java 文件源码
项目:Equella
阅读 22
收藏 0
点赞 0
评论 0
@Override
@Transactional(propagation = Propagation.MANDATORY)
public EntityLock getLock(BaseEntity entity, String lockId)
{
EntityLock lock = entityLockDao.findByCriteria(Restrictions.eq("entity", entity));
if( lock != null )
{
if( lockId == null )
{
throw new LockedException("Entity is locked by another user '" + lock.getUserID() + "'",
lock.getUserID(), lock.getUserSession(), entity.getId());
}
if( !lockId.equals(lock.getUserSession()) )
{
throw new LockedException("Wrong lock id. Entity is locked by user.", lock.getUserID(),
lock.getUserSession(), entity.getId());
}
}
else if( lockId != null )
{
throw new LockedException("Entity is not locked", null, null, entity.getId());
}
return lock;
}
NotificationDaoImpl.java 文件源码
项目:Equella
阅读 25
收藏 0
点赞 0
评论 0
@Override
@Transactional(propagation = Propagation.MANDATORY)
public int markProcessedById(final String user, final Collection<Long> notifications, final String attemptId)
{
if( notifications.isEmpty() )
{
return 0;
}
return (Integer) getHibernateTemplate().execute(new HibernateCallback()
{
@Override
public Object doInHibernate(Session session)
{
Query query = session.createQuery("update Notification set processed = true "
+ "where institution = :inst and userTo = :user and processed = false "
+ "and id in (:noteid) and attemptId = :attempt");
query.setParameter(ATTEMPT, attemptId);
query.setParameterList(NOTEID, notifications);
query.setParameter(USER, user);
query.setParameter(INST, CurrentInstitution.get());
return query.executeUpdate();
}
});
}
CollectionService.java 文件源码
项目:dhus-core
阅读 20
收藏 0
点赞 0
评论 0
@PreAuthorize ("hasRole('ROLE_DATA_MANAGER')")
@Transactional (readOnly=false, propagation=Propagation.REQUIRED)
@CacheEvict (value = "products", allEntries = true)
public void removeProducts (String uuid, Long[] pids)
{
collectionDao.removeProducts (uuid, pids, null);
long start = new Date ().getTime ();
for (Long pid: pids)
{
try
{
searchService.index(productDao.read(pid));
}
catch (Exception e)
{
throw new RuntimeException("Cannot update Solr index", e);
}
}
long end = new Date ().getTime ();
LOGGER.info("[SOLR] Remove " + pids.length +
" product(s) from collection spent " + (end-start) + "ms" );
}
TLEGroupServiceImpl.java 文件源码
项目:Equella
阅读 20
收藏 0
点赞 0
评论 0
@RequiresPrivilege(priv = "EDIT_USER_MANAGEMENT")
@Transactional(propagation = Propagation.REQUIRED)
public void delete(TLEGroup group, boolean deleteChildren)
{
TLEGroup parent = group.getParent();
if( !deleteChildren )
{
// Move children up to same level as group we're deleting
for( TLEGroup child : getGroupsInGroup(group) )
{
child.setParent(parent);
updateGroup(child);
dao.update(child);
}
}
dao.delete(group);
eventService.publishApplicationEvent(new GroupDeletedEvent(group.getUuid()));
}
ProductService.java 文件源码
项目:dhus-core
阅读 25
收藏 0
点赞 0
评论 0
@PreAuthorize ("hasAnyRole('ROLE_DOWNLOAD','ROLE_SEARCH')")
@Transactional (readOnly=true, propagation=Propagation.REQUIRED)
public InputStream getProductThumbnail (Long id)
{
// TODO remove method cause not used
Product product = getProduct (id);
if (!product.getThumbnailFlag ()) return null;
try
{
return new FileInputStream (product.getThumbnailPath ());
}
catch (Exception e)
{
LOGGER.warn ("Cannot retrieve Thumbnail from product id #" + id,e);
}
return null;
}
TLEGroupServiceImpl.java 文件源码
项目:Equella
阅读 21
收藏 0
点赞 0
评论 0
@Override
@Transactional(propagation = Propagation.REQUIRED)
public void userIdChangedEvent(UserIdChangedEvent event)
{
String fromUserId = event.getFromUserId();
for( TLEGroup group : dao.getGroupsContainingUser(fromUserId) )
{
Set<String> users = group.getUsers();
users.remove(fromUserId);
users.add(event.getToUserId());
dao.update(group);
eventService
.publishApplicationEvent(new GroupEditEvent(group.getUuid(), Collections.singleton(fromUserId)));
}
}
AclDaoImpl.java 文件源码
项目:Equella
阅读 23
收藏 0
点赞 0
评论 0
@Override
@SuppressWarnings("unchecked")
@Transactional(propagation = Propagation.MANDATORY)
public List<TargetListEntry> getTargetListEntries(final String target, final Collection<Integer> priorities)
{
return getHibernateTemplate().executeFind(new TLEHibernateCallback()
{
@Override
public Object doInHibernate(Session session) throws HibernateException
{
Query query = session.getNamedQuery("getTargetListEntries");
query.setParameter("institution", CurrentInstitution.get());
query.setParameterList("priorities", priorities);
query.setString("target", target);
return query.list();
}
});
}
TLEGroupServiceImpl.java 文件源码
项目:Equella
阅读 18
收藏 0
点赞 0
评论 0
@Override
@Transactional(propagation = Propagation.REQUIRED)
public void userDeletedEvent(UserDeletedEvent event)
{
String userID = event.getUserID();
for( TLEGroup group : dao.getGroupsContainingUser(userID) )
{
group.getUsers().remove(userID);
dao.update(group);
eventService.publishApplicationEvent(new GroupEditEvent(group.getUuid(), Collections.singleton(userID)));
}
}
OfficialResouceController.java 文件源码
项目:OMIPlatform
阅读 24
收藏 0
点赞 0
评论 0
@PutMapping("/addResource")
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public Message addResource(@RequestBody OfficialResouce officialResouce) {
int status = 0;
status = this.officialResouceService.insert(officialResouce);
Message message = new Message();
message.setStatus(status);
return message;
}
AbstractCopyrightDao.java 文件源码
项目:Equella
阅读 21
收藏 0
点赞 0
评论 0
@Override
@Transactional(propagation = Propagation.MANDATORY)
public void updateHoldingReference(H holding, List<Item> items)
{
List<P> portions = getPortionsForItems(items);
if( holding != null )
{
holding.setPortions(portions);
}
for( P portion : portions )
{
portion.setHolding(holding);
}
}
ShopProductController.java 文件源码
项目:OMIPlatform
阅读 22
收藏 0
点赞 0
评论 0
@PostMapping("addProduct")
@Transactional(propagation = Propagation.REQUIRED)
public String insertProduct(@RequestBody EditShopProductDto productDto) throws JsonProcessingException, InvocationTargetException, IllegalAccessException {
/*将商品基础详情转换为json串*/
String baseProperty = "";
baseProperty = objectMapper.writeValueAsString(productDto.getBaseProperty());
productDto.setProBaseProperty(baseProperty);
/*设置销量*/
productDto.setProSalveNumber(0);
/*设置商品为下架*/
productDto.setProSalve(0);
/*将图片转为字符串*/
String proImgs = objectMapper.writeValueAsString(productDto.getImgs());
productDto.setProImage(proImgs);
/*存储商品*/
this.productService.insert(productDto);
List<ShopProductVersion> spvs = new ArrayList<>();
for (EditShopProductVersionDto vers : productDto.getProVersion()) {
ShopProductVersion spv = new ShopProductVersion();
/*将商品系列中的两个详情转换为json串*/
String dp = objectMapper.writeValueAsString(vers.getDetailProperty());
vers.setProDetailProperty(dp);
vers.setProId(productDto.getProId());
/*将Dto映射到pojo*/
BeanUtils.copyProperties(spv, vers);
spvs.add(spv);
}
System.out.println(productDto.getProId());
/*批量添加到商品系列表中*/
this.shopProductVersionService.insertList(spvs);
return "{\"status\":true}";
}
BamFileDao.java 文件源码
项目:NGB-master
阅读 18
收藏 0
点赞 0
评论 0
/**
* Loads {@code BamFile} records, saved for a specific reference ID. <br>
* @param referenceId {@code long} a reference ID in the system
* @return {@code List<BamFile>} instance
*/
@Transactional(propagation = Propagation.MANDATORY)
public List<BamFile> loadBamFilesByReferenceId(long referenceId) {
return getJdbcTemplate().query(loadBamFilesByReferenceIdQuery, BiologicalDataItemDao
.BiologicalDataItemParameters.getRowMapper(), referenceId)
.stream().map(f -> (BamFile) f).collect(Collectors.toList());
}
TermServiceImpl.java 文件源码
项目:Equella
阅读 24
收藏 0
点赞 0
评论 0
@Override
@Transactional(propagation = Propagation.REQUIRED)
public TermResult addTerm(Taxonomy taxonomy, String parentFullPath, String termValue, boolean createHierarchy)
{
String path = insertTermImpl(taxonomy, parentFullPath, termValue, -1, createHierarchy);
return new TermResult(termValue, path, true);
}
ResourcesController.java 文件源码
项目:OMIPlatform
阅读 24
收藏 0
点赞 0
评论 0
@PostMapping("modifyMenusByAuId/{auid}")
@Transactional(propagation = Propagation.REQUIRED)
public void modifyMenusByAuId(@PathVariable String auid, @RequestBody List<AuthorityResources> items) {
List<String> rids = new ArrayList<>();
List<ResourcesMenuDto> menuDtos = this.resourcesService.finMenusByAuId(auid);
for (ResourcesMenuDto item : menuDtos) {
if (item.getChildren() == null) {
rids.add(item.getId());
}
}
if (rids.size() < 1) {
this.authorityResourcesService.deleteResourcesByRId(null, auid);
} else {
// 先删除该角色所拥有的菜单
this.authorityResourcesService.deleteResourcesByRId(rids, auid);
}
if (items.size() > 0) {
this.authorityResourcesService.insertMenus(items);
}
}
EduCourseServiceImpl.java 文件源码
项目:OMIPlatform
阅读 60
收藏 0
点赞 0
评论 0
@Override
@Transactional(propagation = Propagation.REQUIRED, rollbackFor = Exception.class)
public int addTeacher(EduTeacher teacher, EduCourse eduCourse) {
/*插入教师数据*/
this.eduTheacherService.insert(teacher);
EduCourse course = this.findByEducid(eduCourse.getEducid());
course.setTchid(teacher.getThid());
/*更新课程数据*/
int result = this.eduCourseDao.update(course);
return result;
}
DataCarBrandServiceImpl.java 文件源码
项目:mumu
阅读 19
收藏 0
点赞 0
评论 0
@Override
@Transactional(propagation = Propagation.SUPPORTS, readOnly = false)
public DataCarBrand addSystemCarBrand(DataCarBrand systemCarBrand) {
systemCarBrand.setParentId(0);
systemCarBrand.setStatus(PublicEnum.NORMAL.value());
systemCarBrand.setDepth(1);
// 添加数据
systemCarBrand = carBrandDao.insert(systemCarBrand);
return systemCarBrand;
}
GffManagerTest.java 文件源码
项目:NGB-master
阅读 20
收藏 0
点赞 0
评论 0
@Test
@Transactional(propagation = Propagation.REQUIRES_NEW, rollbackFor = Exception.class)
public void testRegisterGffFail() throws IOException, FeatureIndexException, InterruptedException,
NoSuchAlgorithmException {
Resource resource = context.getResource("classpath:templates/Felis_catus.Felis_catus_6.2.81.gtf");
FeatureIndexedFileRegistrationRequest request = new FeatureIndexedFileRegistrationRequest();
request.setReferenceId(referenceId);
request.setPath(resource.getFile().getAbsolutePath());
boolean failed = true;
try {
gffManager.registerGeneFile(request);
} catch (TribbleException.MalformedFeatureFile e) {
failed = false;
}
Assert.assertFalse("Not failed on unsorted file", failed);
/*Resource fakeIndex = context.getResource("classpath:templates/fake_gtf_index.tbi");
request.setIndexPath(fakeIndex.getFile().getAbsolutePath());
failed = true;
try {
gffManager.registerGeneFile(request);
} catch (Exception e) {
failed = false;
}
Assert.assertFalse("Not failed on unsorted file", failed);*/
}
BookmarkManager.java 文件源码
项目:NGB-master
阅读 22
收藏 0
点赞 0
评论 0
/**
* Loads {@code Bookmark} entities for a given collection of IDs
* @param bookmarkIds collection of IDs to load
* @return a {@code List} of {@code Bookmark} entities
*/
@Transactional(propagation = Propagation.REQUIRED)
public List<Bookmark> loadBookmarksByIds(Collection<Long> bookmarkIds) {
List<Bookmark> bookmarks = bookmarkDao.loadBookmarksByIds(bookmarkIds);
if (!bookmarks.isEmpty()) {
Map<Long, List<BiologicalDataItem>> itemMap = bookmarkDao.loadBookmarkItemsByBookmarkIds(bookmarkIds);
for (Bookmark b : bookmarks) {
b.setOpenedItems(itemMap.get(b.getId()));
}
}
return bookmarks;
}