当前位置: 首页>>代码示例>>Java>>正文


Java DistinctRootEntityResultTransformer类代码示例

本文整理汇总了Java中org.hibernate.transform.DistinctRootEntityResultTransformer的典型用法代码示例。如果您正苦于以下问题:Java DistinctRootEntityResultTransformer类的具体用法?Java DistinctRootEntityResultTransformer怎么用?Java DistinctRootEntityResultTransformer使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。


DistinctRootEntityResultTransformer类属于org.hibernate.transform包,在下文中一共展示了DistinctRootEntityResultTransformer类的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。

示例1: testManyToManyFilterOnCriteria

import org.hibernate.transform.DistinctRootEntityResultTransformer; //导入依赖的package包/类
public void testManyToManyFilterOnCriteria() {
	TestData testData = new TestData();
	testData.prepare();

	Session session = openSession();
	session.enableFilter( "effectiveDate" ).setParameter( "asOfDate", new Date() );

	Product prod = ( Product ) session.createCriteria( Product.class )
	        .setResultTransformer( new DistinctRootEntityResultTransformer() )
	        .add( Expression.eq( "id", testData.prod1Id ) )
	        .uniqueResult();

	assertNotNull( prod );
	assertEquals( "Incorrect Product.categories count for filter", 1, prod.getCategories().size() );

	session.close();
	testData.release();
}
 
开发者ID:cacheonix,项目名称:cacheonix-core,代码行数:19,代码来源:DynamicFilterTest.java

示例2: loadJobsTasks

import org.hibernate.transform.DistinctRootEntityResultTransformer; //导入依赖的package包/类
@SuppressWarnings("unchecked")
private Map<Long, List<TaskData>> loadJobsTasks(Session session, List<Long> jobIds) {
    Query tasksQuery = session.getNamedQuery("loadJobsTasks")
                              .setParameterList("ids", jobIds)
                              .setReadOnly(true)
                              .setResultTransformer(DistinctRootEntityResultTransformer.INSTANCE);

    Map<Long, List<TaskData>> tasksMap = new HashMap<>(jobIds.size(), 1f);
    for (Long id : jobIds) {
        tasksMap.put(id, new ArrayList<TaskData>());
    }

    List<TaskData> tasks = tasksQuery.list();
    for (TaskData task : tasks) {
        tasksMap.get(task.getJobData().getId()).add(task);
    }

    return tasksMap;
}
 
开发者ID:ow2-proactive,项目名称:scheduling,代码行数:20,代码来源:SchedulerDBManager.java

示例3: toQuery

import org.hibernate.transform.DistinctRootEntityResultTransformer; //导入依赖的package包/类
public Query toQuery(Session session, boolean isReadOnly)
{
  org.hibernate.Query query = session.createQuery(toHql());
  for (Map.Entry<String,Object> arg : args().entrySet()) {
    if (arg.getKey().endsWith(SET_ARG_SUFFIX)) {
      // HACK: handle 'list' type parameters, used with the 'IN (?)' operator
      query.setParameterList(arg.getKey(), (Set<?>) arg.getValue());
    }
    else {
      query.setParameter(arg.getKey(), arg.getValue());
    }
  }
  if (_isDistinctRootEntities) {
    query.setResultTransformer(DistinctRootEntityResultTransformer.INSTANCE);
  }
  query.setReadOnly(isReadOnly);
  return query;
}
 
开发者ID:hmsiccbl,项目名称:screensaver,代码行数:19,代码来源:HqlBuilder.java

示例4: getAllObjects

import org.hibernate.transform.DistinctRootEntityResultTransformer; //导入依赖的package包/类
/**
 * @return all objects of this Entity type
 */
@SuppressWarnings("unchecked")
protected List<EntityClass> getAllObjects() {

    List<EntityClass> objects = new ArrayList<>();
    Session session = null;
    try {
        session = sessionFactory.openSession();

        Criteria criteria = session.createCriteria(getEntityType());
        //make uniq, criteria returns many double entities, because of fetched relations
        //http://stackoverflow.com/questions/8758363/why-session-createcriteriaclasstype-list-return-more-object-than-in-list
        criteria.setResultTransformer(DistinctRootEntityResultTransformer.INSTANCE);

        objects = criteria.list();

    } catch (RuntimeException re) {
        re.printStackTrace();

    } finally {
        if (session != null) {
            session.close();
        }
    }

    return objects;
}
 
开发者ID:AMOSTeam3,项目名称:amos-ss15-proj3,代码行数:30,代码来源:AbstractDefaultDao.java

示例5: testSQLQueryInterface

import org.hibernate.transform.DistinctRootEntityResultTransformer; //导入依赖的package包/类
public void testSQLQueryInterface() {
	Session s = openSession();
	Transaction t = s.beginTransaction();
	Organization ifa = new Organization("IFA");
	Organization jboss = new Organization("JBoss");
	Person gavin = new Person("Gavin");
	Employment emp = new Employment(gavin, jboss, "AU");

	s.persist(ifa);
	s.persist(jboss);
	s.persist(gavin);
	s.persist(emp);

	List l = s.createSQLQuery( getOrgEmpRegionSQL() )
			.addEntity("org", Organization.class)
			.addJoin("emp", "org.employments")
			.addScalar("regionCode", Hibernate.STRING)
			.list();
	assertEquals( 2, l.size() );

	l = s.createSQLQuery( getOrgEmpPersonSQL() )
			.addEntity("org", Organization.class)
			.addJoin("emp", "org.employments")
			.addJoin("pers", "emp.employee")
			.list();
	assertEquals( l.size(), 1 );

	t.commit();
	s.close();

	s = openSession();
	t = s.beginTransaction();

	l = s.createSQLQuery( "select {org.*}, {emp.*} " +
		       "from ORGANIZATION org " +
		       "     left outer join EMPLOYMENT emp on org.ORGID = emp.EMPLOYER, ORGANIZATION org2" )
	.addEntity("org", Organization.class)
	.addJoin("emp", "org.employments")
	.setResultTransformer(new DistinctRootEntityResultTransformer())
	.list();
	assertEquals( l.size(), 2 );

	t.commit();
	s.close();

	s = openSession();
	t = s.beginTransaction();

	s.delete(emp);
	s.delete(gavin);
	s.delete(ifa);
	s.delete(jboss);

	t.commit();
	s.close();
}
 
开发者ID:cacheonix,项目名称:cacheonix-core,代码行数:57,代码来源:NativeSQLQueriesTest.java

示例6: testResultTransformerScalarQueries

import org.hibernate.transform.DistinctRootEntityResultTransformer; //导入依赖的package包/类
public void testResultTransformerScalarQueries() throws Exception {

		createTestBaseData();

		String query = "select an.description as description, an.bodyWeight as bodyWeight from Animal an order by bodyWeight desc";

		Session session = openSession();

		List results = session.createQuery( query )
		.setResultTransformer(Transformers.aliasToBean(Animal.class)).list();
		assertEquals( "Incorrect result size", results.size(), 2 );
		assertTrue( "Incorrect return type", results.get(0) instanceof Animal );
		Animal firstAnimal = (Animal) results.get(0);
		Animal secondAnimal = (Animal) results.get(1);
		assertEquals("Mammal #1", firstAnimal.getDescription());
		assertEquals("Mammal #2", secondAnimal.getDescription());
		assertFalse(session.contains(firstAnimal));
		session.close();

		session = openSession();

		Iterator iter = session.createQuery( query )
	     .setResultTransformer(Transformers.aliasToBean(Animal.class)).iterate();
		assertTrue( "Incorrect result size", iter.hasNext() );
		assertTrue( "Incorrect return type", iter.next() instanceof Animal );

		session.close();

		session = openSession();

		ScrollableResults sr = session.createQuery( query )
	     .setResultTransformer(Transformers.aliasToBean(Animal.class)).scroll();
		assertTrue( "Incorrect result size", sr.next() );
		assertTrue( "Incorrect return type", sr.get(0) instanceof Animal );
		assertFalse(session.contains(sr.get(0)));
		sr.close();

		session.close();

		session = openSession();

		results = session.createQuery( "select a from Animal a, Animal b order by a.id" )
				.setResultTransformer(new DistinctRootEntityResultTransformer())
				.list();
		assertEquals( "Incorrect result size", 2, results.size());
		assertTrue( "Incorrect return type", results.get(0) instanceof Animal );
		firstAnimal = (Animal) results.get(0);
		secondAnimal = (Animal) results.get(1);
		assertEquals("Mammal #1", firstAnimal.getDescription());
		assertEquals("Mammal #2", secondAnimal.getDescription());

		session.close();

		destroyTestBaseData();
	}
 
开发者ID:cacheonix,项目名称:cacheonix-core,代码行数:56,代码来源:ASTParserLoadingTest.java

示例7: getData

import org.hibernate.transform.DistinctRootEntityResultTransformer; //导入依赖的package包/类
/**
 * Executes a query that is built using full text search, core column filters, and extension column filters. The filters
 * and sorting to be applied are provided via the criteria parameter, and the code uses introspection to determine which
 * fields are core and which are extensions (assuming it is a table that with extensions). The querying is extremely
 * flexible and dynamic, which means it is also not optimized ... use with care on large data sets!
 *
 * @param criteria
 *            Provides the detail filter and sorting information
 * @param entityClass
 *            The class of the data to be returned
 * @return List of result objects of type entityClass
 */
@Transactional
public QueryResult<T> getData(Criteria criteria, Class<?> entityClass) {
	TableInfo tableInfo = TableInfo.create(entityClass);
	QueryResult<T> result = new QueryResult<>();
	Session session = ((HibernateEntityManager) em).getSession();

	StringBuilder sql = new StringBuilder();
	if (StringUtils.isNotBlank(tableInfo.getExtTableName())) {
		sql.append("SELECT {filtered.*}, {extended.*} ");
		sql.append(", filtered." + tableInfo.getPkColumn() + " INDX FROM (");
	}

	String baseSql = generateFilterQuery(criteria, tableInfo, result, true, true);
	result.setExectutedSql(baseSql);
	sql.append(baseSql);

	if (criteria.isPagingActive()) {
		sql.append(" LIMIT " + criteria.getFirstResults());
		sql.append(", " + criteria.getPageSize());
	}
	if (StringUtils.isNotBlank(tableInfo.getExtTableName())) {
		sql.append(") filtered ");
		sql.append(" left join " + tableInfo.getExtTableName() + " extended on (filtered." + tableInfo.getPkColumn()
				+ " = extended." + tableInfo.getPkColumn() + ") ");
	}

	SQLQuery query = session.createSQLQuery(sql.toString());
	if (StringUtils.isNotBlank(tableInfo.getExtTableName())) {
		query.addScalar("INDX"); // this scalar has to be here to workaround a hibernate bug.
		query.addEntity("filtered", tableInfo.getEntityClass());
		query.addJoin("extended", "filtered." + tableInfo.getExtFieldName());
		query.setResultTransformer(DistinctRootEntityResultTransformer.INSTANCE);
	} else if (StringUtils.isNotBlank(tableInfo.getTableName())) {
		query.addEntity("main", tableInfo.getEntityClass());
	} else if (Map.class.isAssignableFrom(entityClass)) {
		query.setResultTransformer(AliasToEntityStringMapResultTransformer.INSTANCE);
	} else {
		query.setResultTransformer(new IgnoringCaseAliasToBeanResultTransformer(tableInfo.getEntityClass()));
	}

	for (String key : criteria.getParameters().keys()) {
		result.queryParameters.put(key, criteria.getParameters().get(key));
	}

	query.setProperties(result.queryParameters);
	List<T> rows = query.list();

	result.setRows(rows);
	if (!criteria.isPagingActive()) {
		result.setTotalRowCount(rows.size());
	} else {
		StringBuilder countSql = new StringBuilder();
		countSql.append("select count(*) cnt from (");
		countSql.append(generateFilterQuery(criteria, tableInfo, result, false, false));
		countSql.append(") c");
		SQLQuery countQuery = session.createSQLQuery(countSql.toString());
		countQuery.addScalar("cnt", StandardBasicTypes.INTEGER); // this scalar has to be here to workaround a hibernate
		// bug.
		countQuery.setProperties(result.queryParameters);
		Integer count = (Integer) countQuery.uniqueResult();
		result.setTotalRowCount(count);

	}

	return result;
}
 
开发者ID:SmarterApp,项目名称:TechnologyReadinessTool,代码行数:79,代码来源:CriteriaQuery.java

示例8: testFetchMode

import org.hibernate.transform.DistinctRootEntityResultTransformer; //导入依赖的package包/类
@Test
public void testFetchMode(){

	JazzDetachedCriteria criteria = JazzDetachedCriteria.forClass(QuestionnaireVO.class);
	
	//criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
	
	ResultTransformer rt = DistinctRootEntityResultTransformer.INSTANCE;
	criteria.setResultTransformer(rt);
	
	criteria.add(Restrictions.eq("PK", 1l));

	criteria.enableFetchProfile("questinario_com_questoes");
	criteria.enableFetchProfile("questao_com_alternativas");
	
	List<QuestionnaireVO> questinnaires = hibernateTemplate.findByCriteria(criteria);
	
	
	//criteria.disableFetchProfile("questinario_com_questoes");
	//questinnaires = hibernateTemplate.findByCriteria(criteria);
	
	for (QuestionnaireVO questionnaireVO : questinnaires) {
		
		System.out.println("\t "+questionnaireVO.getDescription());
		
		Collection<QuestionVO> questions = questionnaireVO.getQuestions();
		for (QuestionVO questionVO : questions) {
			
			System.out.println("\t\t "+questionVO.getDescription());
			Set<AbstractCriterionVO> criterions = questionVO.getCriterionVOs();
			
			for (AbstractCriterionVO alternativeVO : criterions) {
				String x = alternativeVO==null?"":alternativeVO.getDescription();
				
				System.out.println("\t\t\t "+alternativeVO+" "+x);
				
			}
			
		}
		
		System.out.println(questionnaireVO);
	}		
	
}
 
开发者ID:darciopacifico,项目名称:omr,代码行数:45,代码来源:JazzFetchAndQueryTests.java


注:本文中的org.hibernate.transform.DistinctRootEntityResultTransformer类示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。