类javax.persistence.EntityManager源码实例Demo

下面列出了怎么用javax.persistence.EntityManager的API类实例代码及写法,或者点击链接到github查看源代码。

@Test
public void defaultEntityManagerInjection()
{
    EntityManager injectedEntityManager = entityManagerProducer.getDefaultEntityManager();

    Assert.assertNotNull(injectedEntityManager);
    Assert.assertTrue(injectedEntityManager instanceof TestEntityManager);
    TestEntityTransaction testTransaction = (TestEntityTransaction) (injectedEntityManager).getTransaction();

    Assert.assertEquals(false, ((TestEntityManager) injectedEntityManager).isFlushed());
    Assert.assertEquals(false, testTransaction.isActive());
    Assert.assertEquals(false, testTransaction.isStarted());
    Assert.assertEquals(false, testTransaction.isCommitted());
    Assert.assertEquals(false, testTransaction.isRolledBack());

    transactionalBean.executeInTransaction();

    Assert.assertEquals(true, ((TestEntityManager) injectedEntityManager).isFlushed());
    Assert.assertEquals(false, testTransaction.isActive());
    Assert.assertEquals(true, testTransaction.isStarted());
    Assert.assertEquals(true, testTransaction.isCommitted());
    Assert.assertEquals(false, testTransaction.isRolledBack());

    Assert.assertEquals(false, TransactionBeanStorage.isOpen());
}
 
List<String> listEditableWithPortalCategory(Business business, EffectivePerson effectivePerson,
		String portalCategory) throws Exception {
	EntityManager em = business.entityManagerContainer().get(Portal.class);
	CriteriaBuilder cb = em.getCriteriaBuilder();
	CriteriaQuery<String> cq = cb.createQuery(String.class);
	Root<Portal> root = cq.from(Portal.class);
	Predicate p = cb.conjunction();
	if (!business.isPortalManager(effectivePerson)) {
		p = cb.isMember(effectivePerson.getDistinguishedName(), root.get(Portal_.controllerList));
		p = cb.or(p, cb.equal(root.get(Portal_.creatorPerson), effectivePerson.getDistinguishedName()));
	}
	p = cb.and(p, cb.equal(root.get(Portal_.portalCategory), Objects.toString(portalCategory, "")));
	cq.select(root.get(Portal_.id)).where(p).distinct(true);
	List<String> list = em.createQuery(cq.select(root.get(Portal_.id)).where(p)).getResultList();
	return list;
}
 
源代码3 项目: bouncr   文件: UserResource.java
@Decision(value = CONFLICT, method = "PUT")
public boolean conflict(UserUpdateRequest updateRequest,
                        User user,
                        RestContext context,
                        EntityManager em) {
    UserProfileService userProfileService = new UserProfileService(em);
    Set<Problem.Violation> violations = userProfileService.validateProfileUniqueness(updateRequest.getUserProfiles(), user);
    if (!violations.isEmpty()) {
        Problem problem = builder(Problem.valueOf(409))
                .set(Problem::setType, BouncrProblem.CONFLICT.problemUri())
                .build();
        problem.getViolations().addAll(violations);
        context.setMessage(problem);
    }
    return !violations.isEmpty();
}
 
源代码4 项目: joynr   文件: ChannelDatabase.java
@Override
public Channel getChannel(Optional<String> ccid) {

    String channelId;
    if (ccid.isPresent()) {
        channelId = ccid.get();
    } else {
        logger.debug("No channel found for ID NULL");
        return null;
    }
    logger.trace("GetChannel({})", channelId);

    EntityManager em = emf.createEntityManager();
    ChannelEntity channelEntity = em.find(ChannelEntity.class, channelId);
    if (channelEntity == null) {
        logger.debug("No channel found for ID {}", channelId);
        return null;
    }

    return channelEntity.convertToChannel();
}
 
源代码5 项目: o2oa   文件: CrawlWork.java
/**
 * 定时进行轮询保证旧数据能定期进行更新
 */
private List<String> listUpdateWork(Business business) throws Exception {
	EntityManager em = business.entityManagerContainer().get(Work.class);
	CriteriaBuilder cb = em.getCriteriaBuilder();
	CriteriaQuery<String> cq = cb.createQuery(String.class);
	Root<Work> root = cq.from(Work.class);
	Predicate p = cb.conjunction();
	String sequence = Arguments.getCrawlUpdateWork();
	if (StringUtils.isNotEmpty(sequence)) {
		p = cb.and(cb.lessThan(root.get(Work.sequence_FIELDNAME), sequence));
	}
	cq.select(root.get(Work_.id)).where(p).orderBy(cb.desc(root.get(Work_.sequence)));
	Integer count = Config.query().getCrawlWork().getCount() / 2;
	List<String> os = em.createQuery(cq).setMaxResults(count).getResultList();
	if (os.size() == count) {
		Arguments.setCrawlUpdateWork(os.get(os.size() - 1));
	} else {
		Arguments.setCrawlUpdateWork("");
	}
	return os;
}
 
源代码6 项目: o2oa   文件: V2List.java
public ActionResult<List<Wo>> execute(EffectivePerson effectivePerson, JsonElement jsonElement) throws Exception {
	ActionResult<List<Wo>> result = new ActionResult<>();
	List<Wo> wos = new ArrayList<>();
	Wi wi = this.convertToWrapIn(jsonElement, Wi.class);
	if ((!wi.isEmptyFilter()) || ListTools.isNotEmpty(wi.getJobList()) || ListTools.isNotEmpty(wi.getIdList())) {
		try (EntityManagerContainer emc = EntityManagerContainerFactory.instance().create()) {
			Business business = new Business(emc);
			EntityManager em = emc.get(Read.class);
			CriteriaBuilder cb = em.getCriteriaBuilder();
			CriteriaQuery<Tuple> cq = cb.createQuery(Tuple.class);
			Root<Read> root = cq.from(Read.class);
			Predicate p = this.toFilterPredicate(effectivePerson, business, wi);
			if (ListTools.isNotEmpty(wi.getJobList())) {
				p = cb.and(p, root.get(Read_.job).in(wi.getJobList()));
			}
			if (ListTools.isNotEmpty(wi.getIdList())) {
				p = cb.and(p, root.get(Read_.id).in(wi.getIdList()));
			}
			wos = emc.fetch(Read.class, Wo.copier, p);
			this.relate(business, wos, wi);
		}
	}
	result.setData(wos);
	return result;
}
 
源代码7 项目: o2oa   文件: V2Count.java
private List<NameValueCountPair> groupByApplication(Business business, Predicate predicate) throws Exception {
	EntityManager em = business.entityManagerContainer().get(TaskCompleted.class);
	CriteriaBuilder cb = em.getCriteriaBuilder();
	CriteriaQuery<Tuple> cq = cb.createQuery(Tuple.class);
	Root<TaskCompleted> root = cq.from(TaskCompleted.class);
	Path<String> pathApplication = root.get(TaskCompleted_.application);
	Path<String> pathApplicationName = root.get(TaskCompleted_.applicationName);
	cq.multiselect(pathApplication, pathApplicationName, cb.count(root)).where(predicate).groupBy(pathApplication);
	List<Tuple> os = em.createQuery(cq).getResultList();
	List<NameValueCountPair> list = new ArrayList<>();
	NameValueCountPair pair = null;
	for (Tuple o : os) {
		pair = new NameValueCountPair();
		pair.setName(o.get(pathApplicationName));
		pair.setValue(o.get(pathApplication));
		pair.setCount(o.get(2, Long.class));
		list.add(pair);
	}
	return list.stream().sorted(Comparator.comparing(NameValueCountPair::getCount).reversed())
			.collect(Collectors.toList());
}
 
源代码8 项目: juddi   文件: ValidatePublish.java
public void validateSaveBindingMax(EntityManager em, String serviceKey) throws DispositionReportFaultMessage {

                //Obtain the maxSettings for this publisher or get the defaults
                Publisher publisher = em.find(Publisher.class, getPublisher().getAuthorizedName());
                Integer maxBindings = publisher.getMaxBindingsPerService();
                try {
                        if (maxBindings == null) {
                                if (AppConfig.getConfiguration().containsKey(Property.JUDDI_MAX_BINDINGS_PER_SERVICE)) {
                                        maxBindings = AppConfig.getConfiguration().getInteger(Property.JUDDI_MAX_BINDINGS_PER_SERVICE, -1);
                                } else {
                                        maxBindings = -1;
                                }
                        }
                } catch (ConfigurationException e) {
                        log.error(e.getMessage(), e);
                        maxBindings = -1; //incase the config isn't available
                }
                //if we have the maxBindings set for a service then we need to make sure we did not exceed it.
                if (maxBindings > 0) {
                        //get the bindings owned by this service
                        org.apache.juddi.model.BusinessService modelBusinessService = em.find(org.apache.juddi.model.BusinessService.class, serviceKey);
                        if (modelBusinessService.getBindingTemplates() != null && modelBusinessService.getBindingTemplates().size() > maxBindings) {
                                throw new MaxEntitiesExceededException(new ErrorMessage("errors.save.maxBindingsExceeded"));
                        }
                }
        }
 
@Test
public void testUnboundedRangeIsRejected() {
    try {
        final Restriction ageRestrictionInt = doInJPA(new JPATransactionFunction<Restriction>() {
            @Override
            public Restriction apply(EntityManager entityManager) {
                Restriction restriction = new Restriction();
                restriction.setRangeInt(Ranges.<Integer>all());
                entityManager.persist(restriction);

                return restriction;
            }
        });
        fail("An unbounded range should throw an exception!");
    } catch (Exception e) {
        Throwable rootCause = Throwables.getRootCause(e);
        assertTrue(rootCause instanceof IllegalArgumentException);
        assertTrue(rootCause.getMessage().contains("doesn't have any upper or lower bound!"));
    }
}
 
源代码10 项目: o2oa   文件: ActionFilterAttribute.java
private List<NameValueCountPair> listActivityNamePair(Business business, EffectivePerson effectivePerson)
		throws Exception {
	EntityManager em = business.entityManagerContainer().get(TaskCompleted.class);
	CriteriaBuilder cb = em.getCriteriaBuilder();
	CriteriaQuery<String> cq = cb.createQuery(String.class);
	Root<TaskCompleted> root = cq.from(TaskCompleted.class);
	Predicate p = cb.equal(root.get(TaskCompleted_.person), effectivePerson.getDistinguishedName());
	p = cb.and(p,
			cb.or(cb.equal(root.get(TaskCompleted_.latest), true), cb.isNull(root.get(TaskCompleted_.latest))));
	cq.select(root.get(TaskCompleted_.activityName)).where(p).distinct(true);
	List<String> os = em.createQuery(cq).getResultList();
	List<NameValueCountPair> wos = new ArrayList<>();
	for (String str : os) {
		if (StringUtils.isNotEmpty(str)) {
			NameValueCountPair o = new NameValueCountPair();
			o.setValue(str);
			o.setName(str);
			wos.add(o);
		}
	}
	SortTools.asc(wos, "name");
	return wos;
}
 
源代码11 项目: we-cmdb   文件: CiServiceImpl.java
private Map<String, Object> doUpdate(EntityManager entityManager, int ciTypeId, Map<String, Object> ci, boolean enableStateTransition) {
    DynamicEntityMeta entityMeta = getDynamicEntityMetaMap().get(ciTypeId);

    String guid = ci.get(GUID).toString();
    Object entityBean = validateCi(ciTypeId, guid, entityMeta, entityManager, ACTION_MODIFICATION);
    DynamicEntityHolder entityHolder = new DynamicEntityHolder(entityMeta, entityBean);

    ciDataInterceptorService.preUpdate(entityHolder, ci);
    Map<String, Object> convertedCi = MultiValueFeildOperationUtils.convertMultiValueFieldsForCICreation(entityManager, ciTypeId, ci, (String) ci.get(CmdbConstants.DEFAULT_FIELD_GUID), ciTypeAttrRepository, this);
    Map<String, Object> updatedMap = null;
    if (onlyIncludeRefreshableFields(ciTypeId, convertedCi.keySet()) || !enableStateTransition) {
        entityHolder.update(convertedCi, CmdbThreadLocal.getIntance().getCurrentUser(), entityManager);
        entityManager.merge(entityHolder.getEntityObj());
    } else {
        updatedMap = stateTransEngine.process(entityManager, ciTypeId, guid, StateOperation.Update.getCode(), convertedCi, entityHolder);
        ci.put(CmdbConstants.DEFAULT_FIELD_STATE,StateOperation.Update.getCode());
    }

    ciDataInterceptorService.postUpdate(entityHolder, entityManager, ci);
    updatedMap = ClassUtils.convertBeanToMap(entityHolder.getEntityObj(), entityHolder.getEntityMeta(), false);
    return updatedMap;
}
 
源代码12 项目: o2oa   文件: OkrTaskFactory.java
/**
 * 根据待办类别和用户身份,查询待办列表
 * @param taskTypeList
 * @param userIdentity
 * @return
 * @throws Exception 
 */
public List<OkrTask> listReadByTaskType( List<String> taskTypeList, String userIdentity, String workTypeName ) throws Exception {
	List<OkrTask> okrTaskList = null;
	EntityManager em = this.entityManagerContainer().get( OkrTask.class );
	CriteriaBuilder cb = em.getCriteriaBuilder();
	CriteriaQuery< OkrTask > cq = cb.createQuery( OkrTask.class );
	Root<OkrTask> root = cq.from( OkrTask.class);
	Predicate p = root.get( OkrTask_.dynamicObjectType ).in( taskTypeList );
	p = cb.and( p, cb.equal( root.get( OkrTask_.targetIdentity ), userIdentity ) );
	p = cb.and( p, cb.equal( root.get( OkrTask_.processType ), "READ" ) );
	if( workTypeName != null && !workTypeName.isEmpty() ){
		p = cb.and( p, cb.equal( root.get( OkrTask_.workType ), workTypeName ) );
	}
	okrTaskList = em.createQuery(cq.where(p)).getResultList();
	if( okrTaskList == null ){
		return null;
	}else{
		return okrTaskList;
	}
}
 
源代码13 项目: HibernateTips   文件: TestStoredProcedureQuery.java
@Test
public void calculate() {
	log.info("... calculate ...");
	EntityManager em = emf.createEntityManager();
       em.getTransaction().begin();
       
	// define the stored procedure
	StoredProcedureQuery query = em.createStoredProcedureQuery("calculate");
	query.registerStoredProcedureParameter("x", Double.class, ParameterMode.IN);
	query.registerStoredProcedureParameter("y", Double.class, ParameterMode.IN);
	query.registerStoredProcedureParameter("sum", Double.class, ParameterMode.OUT);
	
	// set input parameter
	query.setParameter("x", 1.23d);
	query.setParameter("y", 4d);
	
	// call the stored procedure and get the result
	query.execute();
	Double sum = (Double) query.getOutputParameterValue("sum");
	log.info("Calculation result: 1.23 + 4 = " + sum);

       em.getTransaction().commit();
       em.close();
}
 
源代码14 项目: o2oa   文件: OkrTaskHandledFactory.java
/**
 * 查询已办处理者身份列表(去重复)
 * @param identities_ok 排除身份
 * @param identities_error 排除身份
 * @return
 * @throws Exception 
 */
public List<String> listAllDistinctTargetIdentity(List<String> identities_ok, List<String> identities_error) throws Exception {
	EntityManager em = this.entityManagerContainer().get(OkrTaskHandled.class);
	CriteriaBuilder cb = em.getCriteriaBuilder();
	CriteriaQuery<String> cq = cb.createQuery( String.class );
	Root<OkrTaskHandled> root = cq.from(OkrTaskHandled.class);
	
	Predicate p = cb.isNotNull( root.get( OkrTaskHandled_.id ) );
	if( identities_ok != null && identities_ok.size() > 0 ){
		p = cb.and( p, cb.not(root.get( OkrTaskHandled_.targetIdentity ).in( identities_ok )) );
	}
	if( identities_error != null && identities_error.size() > 0 ){
		p = cb.and( p, cb.not(root.get( OkrTaskHandled_.targetIdentity ).in( identities_error )) );
	}
	cq.distinct(true).select(root.get( OkrTaskHandled_.targetIdentity ));
	return em.createQuery(cq.where(p)).getResultList();
}
 
源代码15 项目: o2oa   文件: OkrTaskFactory.java
/**
 * 根据待办类别和用户身份,查询待办列表
 * @param taskTypeList
 * @param userIdentity
 * @return
 * @throws Exception 
 */
public List<OkrTask> listTaskByTaskType( List<String> taskTypeList, String userIdentity, String workTypeName ) throws Exception {
	List<OkrTask> okrTaskList = null;
	EntityManager em = this.entityManagerContainer().get( OkrTask.class );
	CriteriaBuilder cb = em.getCriteriaBuilder();
	CriteriaQuery< OkrTask > cq = cb.createQuery( OkrTask.class );
	Root<OkrTask> root = cq.from( OkrTask.class);
	Predicate p = root.get( OkrTask_.dynamicObjectType ).in( taskTypeList );
	p = cb.and( p, cb.equal( root.get( OkrTask_.targetIdentity ), userIdentity ) );
	p = cb.and( p, cb.equal( root.get( OkrTask_.processType ), "TASK" ) );
	if( workTypeName != null && !workTypeName.isEmpty() ){
		p = cb.and( p, cb.equal( root.get( OkrTask_.workType ), workTypeName ) );
	}
	okrTaskList = em.createQuery(cq.where(p)).getResultList();
	if( okrTaskList == null ){
		return null;
	}else{
		return okrTaskList;
	}
}
 
源代码16 项目: ranger   文件: DaoManager.java
@Override
public EntityManager getEntityManager() {
	EntityManager em = null;

	if(sEntityManager != null) {
		em = sEntityManager.get();

		if(em == null && this.emf != null) {
			em = this.emf.createEntityManager();

			sEntityManager.set(em);
		}
	} else {
		logger.error("EntityManagerFactory was not set in this thread.", new Throwable());
	}

	return em;
}
 
源代码17 项目: peer-os   文件: RequestDataService.java
@Override
public Collection<RequestedHostImpl> getAll()
{
    Collection<RequestedHostImpl> result = Lists.newArrayList();
    EntityManager em = daoManager.getEntityManagerFromFactory();
    try
    {
        em.getTransaction().begin();
        result = em.createQuery( "select h from RequestedHostImpl h", RequestedHostImpl.class ).getResultList();
        em.getTransaction().commit();
    }
    catch ( Exception e )
    {
        LOGGER.error( e.toString(), e );
        if ( em.getTransaction().isActive() )
        {
            em.getTransaction().rollback();
        }
    }
    finally
    {
        em.close();
    }
    return result;
}
 
源代码18 项目: che   文件: JpaProfileDao.java
@Override
@Transactional
public ProfileImpl getById(String userId) throws NotFoundException, ServerException {
  requireNonNull(userId, "Required non-null id");
  try {
    final EntityManager manager = managerProvider.get();
    final ProfileImpl profile = manager.find(ProfileImpl.class, userId);
    if (profile == null) {
      throw new NotFoundException(format("Couldn't find profile for user with id '%s'", userId));
    }
    manager.refresh(profile);
    return profile;
  } catch (RuntimeException x) {
    throw new ServerException(x.getLocalizedMessage(), x);
  }
}
 
源代码19 项目: o2oa   文件: BaseAction.java
private Long countExpiredTaskTask(Business business, DateRange dateRange, String applicationId, String processId,
		String activityId, List<String> units, String person) throws Exception {
	EntityManager em = business.entityManagerContainer().get(Task.class);
	CriteriaBuilder cb = em.getCriteriaBuilder();
	CriteriaQuery<Long> cq = cb.createQuery(Long.class);
	Root<Task> root = cq.from(Task.class);
	Predicate p = cb.between(root.get(Task_.expireTime), dateRange.getStart(), dateRange.getEnd());
	if (!StringUtils.equals(applicationId, StandardJaxrsAction.EMPTY_SYMBOL)) {
		p = cb.and(p, cb.equal(root.get(Task_.application), applicationId));
	}
	if (!StringUtils.equals(processId, StandardJaxrsAction.EMPTY_SYMBOL)) {
		p = cb.and(p, cb.equal(root.get(Task_.process), processId));
	}
	if (!StringUtils.equals(activityId, StandardJaxrsAction.EMPTY_SYMBOL)) {
		p = cb.and(p, cb.equal(root.get(Task_.activity), activityId));
	}
	if (ListTools.isNotEmpty(units)) {
		p = cb.and(p, root.get(Task_.unit).in(units));
	}
	if (!StringUtils.equals(person, StandardJaxrsAction.EMPTY_SYMBOL)) {
		p = cb.and(p, cb.equal(root.get(Task_.person), person));
	}
	cq.select(cb.count(root)).where(p);
	return em.createQuery(cq).getSingleResult();
}
 
源代码20 项目: cloud-espm-v2   文件: StockTest.java
/**
 * Test removing of a Business Partner.
 */
@Test
public void testRemoveStock() {
	Stock stockRes = null;
	String productId = "HY-1000";
	TestFactory tf = new TestFactory();
	EntityManager em = emf.createEntityManager();
	try {
		if (!tf.createStock(em, productId)) {
			fail("Unable to create Stock");
			return;
		}
		em.getTransaction().begin();
		// Remove Business Partner
		assertTrue("Stock not deleted", tf.deleteStock(em, productId));
		// Search for deleted business partner.
		stockRes = em.find(Stock.class, productId);
		assertNull(
				"Search via find method for removed Stock: Removed Stock with Product HT-1000 still exists ",
				stockRes);
	} finally {
		em.close();
	}
}
 
@Test
public void testPublicSpecificExtendedPersistenceContextSetter() throws Exception {
	EntityManagerFactory mockEmf2 = mock(EntityManagerFactory.class);
	EntityManager mockEm2 = mock(EntityManager.class);
	given(mockEmf2.createEntityManager()).willReturn(mockEm2);

	GenericApplicationContext gac = new GenericApplicationContext();
	gac.getDefaultListableBeanFactory().registerSingleton("entityManagerFactory", mockEmf);
	gac.getDefaultListableBeanFactory().registerSingleton("unit2", mockEmf2);
	gac.registerBeanDefinition("annotationProcessor",
			new RootBeanDefinition(PersistenceAnnotationBeanPostProcessor.class));
	gac.registerBeanDefinition(SpecificPublicPersistenceContextSetter.class.getName(),
			new RootBeanDefinition(SpecificPublicPersistenceContextSetter.class));
	gac.refresh();

	SpecificPublicPersistenceContextSetter bean = (SpecificPublicPersistenceContextSetter) gac.getBean(
			SpecificPublicPersistenceContextSetter.class.getName());
	assertNotNull(bean.getEntityManager());
	bean.getEntityManager().flush();
	verify(mockEm2).getTransaction();
	verify(mockEm2).flush();
}
 
源代码22 项目: o2oa   文件: StatisticUnitForDayFactory.java
public List<String> listByUnitDayDate(List<String> name, String date) throws Exception {
	if (name == null || name.size() == 0) {
		logger.error(new UnitNamesEmptyException());
		return null;
	}

	EntityManager em = this.entityManagerContainer().get(StatisticUnitForDay.class);
	CriteriaBuilder cb = em.getCriteriaBuilder();
	CriteriaQuery<String> cq = cb.createQuery(String.class);
	Root<StatisticUnitForDay> root = cq.from(StatisticUnitForDay.class);
	Predicate p = root.get(StatisticUnitForDay_.unitName).in(name);
	if (date == null || date.isEmpty()) {
		logger.error(new StatisticDateEmptyException());
	} else {
		p = cb.and(p, cb.equal(root.get(StatisticUnitForDay_.statisticDate), date));
	}
	cq.select(root.get(StatisticUnitForDay_.id));
	return em.createQuery(cq.where(p)).setMaxResults(62).getResultList();
}
 
源代码23 项目: o2oa   文件: BeginFactory.java
public Begin getWithProcess(Process process) throws Exception {
	Begin o = null;
	Ehcache cache = ApplicationCache.instance().getCache(Begin.class);
	String cacheKey = "getWithProcess#" + process.getId();
	Element element = cache.get(cacheKey);
	if (null != element) {
		Object obj = element.getObjectValue();
		if (null != obj) {
			o = (Begin) obj;
		}
	} else {
		EntityManager em = this.entityManagerContainer().get(Begin.class);
		CriteriaBuilder cb = em.getCriteriaBuilder();
		CriteriaQuery<Begin> cq = cb.createQuery(Begin.class);
		Root<Begin> root = cq.from(Begin.class);
		Predicate p = cb.equal(root.get("process"), process.getId());
		cq.select(root).where(p);
		List<Begin> list = em.createQuery(cq).setMaxResults(1).getResultList();
		if (!list.isEmpty()) {
			o = list.get(0);
		}
		cache.put(new Element(cacheKey, o));
	}
	return o;
}
 
源代码24 项目: o2oa   文件: OkrWorkReportBaseInfoFactory.java
/**
 * 查询工作汇报者身份列表(去重复)
 * @param identities_ok 排除身份
 * @param identities_error 排除身份
 * @return
 * @throws Exception 
 */
public List<String> listAllDistinctReporterIdentity(List<String> identities_ok, List<String> identities_error) throws Exception {
	EntityManager em = this.entityManagerContainer().get(OkrWorkReportBaseInfo.class);
	CriteriaBuilder cb = em.getCriteriaBuilder();
	CriteriaQuery<String> cq = cb.createQuery( String.class );
	Root<OkrWorkReportBaseInfo> root = cq.from(OkrWorkReportBaseInfo.class);
	
	Predicate p = cb.isNotNull( root.get( OkrWorkReportBaseInfo_.id ) );
	if( identities_ok != null && identities_ok.size() > 0 ){
		p = cb.and( p, cb.not(root.get( OkrWorkReportBaseInfo_.reporterIdentity ).in( identities_ok )) );
	}
	if( identities_error != null && identities_error.size() > 0 ){
		p = cb.and( p, cb.not(root.get( OkrWorkReportBaseInfo_.reporterIdentity ).in( identities_error )) );
	}
	cq.distinct(true).select(root.get( OkrWorkReportBaseInfo_.reporterIdentity ));
	return em.createQuery(cq.where(p)).getResultList();
}
 
源代码25 项目: open-platform-demo   文件: SaleOrderController.java
public void reportMonthly(ActionRequest request, ActionResponse response) {
  EntityManager em = getEntityManager();
  Query q1 =
      em.createQuery(
          "SELECT SUM(self.totalAmount) FROM Order AS self "
              + "WHERE YEAR(self.orderDate) = YEAR(current_date) AND "
              + "MONTH(self.orderDate) = MONTH(current_date) - 1");

  Query q2 =
      em.createQuery(
          "SELECT SUM(self.totalAmount) FROM Order AS self "
              + "WHERE YEAR(self.orderDate) = YEAR(current_date) AND "
              + "MONTH(self.orderDate) = MONTH(current_date)");

  List<?> r1 = q1.getResultList();
  BigDecimal last = r1.get(0) == null ? BigDecimal.ZERO : (BigDecimal) r1.get(0);

  List<?> r2 = q2.getResultList();
  BigDecimal total = r2.get(0) == null ? BigDecimal.ZERO : (BigDecimal) r2.get(0);

  BigDecimal percent = BigDecimal.ZERO;
  if (total.compareTo(BigDecimal.ZERO) == 1) {
    percent =
        total.subtract(last).multiply(new BigDecimal(100)).divide(total, RoundingMode.HALF_UP);
  }

  Map<String, Object> data = new HashMap<>();
  data.put("total", total);
  data.put("percent", percent);
  data.put("down", total.compareTo(last) == -1);

  response.setData(Lists.newArrayList(data));
}
 
源代码26 项目: o2oa   文件: StatFactory.java
public List<String> listWithQuery(String queryId) throws Exception {
	EntityManager em = this.entityManagerContainer().get(Stat.class);
	CriteriaBuilder cb = em.getCriteriaBuilder();
	CriteriaQuery<String> cq = cb.createQuery(String.class);
	Root<Stat> root = cq.from(Stat.class);
	Predicate p = cb.equal(root.get(Stat_.query), queryId);
	cq.select(root.get(Stat_.id)).where(p);
	List<String> os = em.createQuery(cq).getResultList();
	return os;
}
 
源代码27 项目: o2oa   文件: CalendarFactory.java
/**
 * 查询我自己(可管理)的日历
 * @param personName
 * @return
 * @throws Exception
 */
public List<String> listMyCalender( String personName ) throws Exception {
	EntityManager em = this.entityManagerContainer().get(Calendar.class);
	CriteriaBuilder cb = em.getCriteriaBuilder();
	CriteriaQuery<String> cq = cb.createQuery(String.class);
	Root<Calendar> root = cq.from(Calendar.class);
	Predicate permission = cb.equal( root.get(Calendar_.createor), personName );
	cq.select(root.get(Calendar_.id));
	return em.createQuery(cq.where(permission)).getResultList();
}
 
源代码28 项目: monolith   文件: NestedPerformanceDTO.java
public Performance fromDTO(Performance entity, EntityManager em)
{
   if (entity == null)
   {
      entity = new Performance();
   }
   if (this.id != null)
   {
      TypedQuery<Performance> findByIdQuery = em
            .createQuery(
                  "SELECT DISTINCT p FROM Performance p WHERE p.id = :entityId",
                  Performance.class);
      findByIdQuery.setParameter("entityId", this.id);
      try
      {
         entity = findByIdQuery.getSingleResult();
      }
      catch (javax.persistence.NoResultException nre)
      {
         entity = null;
      }
      return entity;
   }
   entity.setDate(this.date);
   entity = em.merge(entity);
   return entity;
}
 
源代码29 项目: o2oa   文件: MeetingFactory.java
public List<String> listFutureWithRoom(String roomId, boolean allowOnly) throws Exception {
	EntityManager em = this.entityManagerContainer().get(Meeting.class);
	CriteriaBuilder cb = em.getCriteriaBuilder();
	CriteriaQuery<String> cq = cb.createQuery(String.class);
	Root<Meeting> root = cq.from(Meeting.class);
	Predicate p = cb.greaterThanOrEqualTo(root.get(Meeting_.startTime), new Date());
	p = cb.and(p, cb.equal(root.get(Meeting_.room), roomId));
	p = cb.and(p, cb.equal(root.get(Meeting_.manualCompleted), false));
	if (allowOnly) {
		p = cb.and(p, cb.equal(root.get(Meeting_.confirmStatus), ConfirmStatus.allow));
	}
	cq.select(root.get(Meeting_.id)).where(p);
	return em.createQuery(cq).getResultList();
}
 
源代码30 项目: o2oa   文件: RoleFactory.java
private Role pickObject(String flag) throws Exception {
	Role o = this.entityManagerContainer().flag(flag, Role.class);
	if (o != null) {
		this.entityManagerContainer().get(Role.class).detach(o);
	} else {
		String name = flag;
		Matcher matcher = role_distinguishedName_pattern.matcher(flag);
		if (matcher.find()) {
			name = matcher.group(1);
			String unique = matcher.group(2);
			o = this.entityManagerContainer().flag(unique, Role.class);
			if (null != o) {
				this.entityManagerContainer().get(Role.class).detach(o);
			}
		}
		if (null == o) {
			EntityManager em = this.entityManagerContainer().get(Role.class);
			CriteriaBuilder cb = em.getCriteriaBuilder();
			CriteriaQuery<Role> cq = cb.createQuery(Role.class);
			Root<Role> root = cq.from(Role.class);
			Predicate p = cb.equal(root.get(Role_.name), name);
			List<Role> os = em.createQuery(cq.select(root).where(p).distinct(true)).getResultList();
			if (os.size() == 1) {
				o = os.get(0);
				em.detach(o);
			}
		}
	}
	return o;
}
 
 类所在包
 同包方法