我们正在使用 Java 6、JPA 2.1 和 Hibernate 4.3.6.Final。我有下面的代码可以找到我们的组织对象......
final CriteriaBuilder builder = entityManager.getCriteriaBuilder();
final CriteriaQuery<Organization> criteria = builder.createQuery(Organization.class);
final Root<Organization> root = criteria.from(Organization.class);
final CriteriaQuery query = buildCriteriaQuery(builder, criteria, root, country, state, organizationTypes, parentOrg, zipCode);
final TypedQuery<Organization> typedQuery = entityManager.createQuery(query);
if (page != null && pageSize != null)
{
int first = (page - 1) * pageSize;
typedQuery.setFirstResult(first);
typedQuery.setMaxResults(pageSize);
} // if
return typedQuery.getResultList();
这些组织对象是数据密集型对象。我们有一个数据传输对象,OrganizationDto,它只包含组织字段的一个子集。有没有办法配置上述内容来填充 OrganizationDto 对象而不是 Organization 对象?我想避免的是获取结果集,然后编写一个 for 循环来遍历所有内容并创建所有数据传输对象。如果查询能够以某种方式立即填充这些数据传输对象,那就太好了。