Java 类org.hibernate.FetchMode 实例源码

项目:lams    文件:EnumConversionHelper.java   
public static FetchMode annotationFetchModeToHibernateFetchMode(org.hibernate.annotations.FetchMode annotationFetchMode) {
    switch ( annotationFetchMode ) {
        case JOIN: {
            return FetchMode.JOIN;
        }
        case SELECT: {
            return FetchMode.SELECT;
        }
        case SUBSELECT: {
            // todo - is this correct? can the conversion be made w/o any additional information, eg
            // todo - association nature
            return FetchMode.SELECT;
        }
        default: {
            throw new AssertionFailure( "Unknown fetch mode" );
        }
    }
}
项目:lams    文件:JoinWalker.java   
/**
 * Determine the appropriate type of join (if any) to use to fetch the
 * given association.
 *
 * @param persister The owner of the association.
 * @param path The path to the association
 * @param propertyNumber The property number representing the association.
 * @param associationType The association type.
 * @param metadataFetchMode The metadata-defined fetch mode.
 * @param metadataCascadeStyle The metadata-defined cascade style.
 * @param lhsTable The owner table
 * @param lhsColumns The owner join columns
 * @param nullable Is the association nullable.
 * @param currentDepth Current join depth
 * @return type of join to use ({@link org.hibernate.sql.JoinType#INNER_JOIN},
 * {@link org.hibernate.sql.JoinType#LEFT_OUTER_JOIN}, or -1 to indicate no joining.
 * @throws MappingException ??
 */
protected JoinType getJoinType(
        OuterJoinLoadable persister,
        final PropertyPath path,
        int propertyNumber,
        AssociationType associationType,
        FetchMode metadataFetchMode,
        CascadeStyle metadataCascadeStyle,
        String lhsTable,
        String[] lhsColumns,
        final boolean nullable,
        final int currentDepth) throws MappingException {
    return getJoinType(
            associationType,
            metadataFetchMode,
            path,
            lhsTable,
            lhsColumns,
            nullable,
            currentDepth,
            metadataCascadeStyle
    );
}
项目:lams    文件:JoinWalker.java   
/**
 * Determine the appropriate associationType of join (if any) to use to fetch the
 * given association.
 *
 * @param associationType The association associationType.
 * @param config The metadata-defined fetch mode.
 * @param path The path to the association
 * @param lhsTable The owner table
 * @param lhsColumns The owner join columns
 * @param nullable Is the association nullable.
 * @param currentDepth Current join depth
 * @param cascadeStyle The metadata-defined cascade style.
 * @return type of join to use ({@link org.hibernate.sql.JoinType#INNER_JOIN},
 * {@link org.hibernate.sql.JoinType#LEFT_OUTER_JOIN}, or -1 to indicate no joining.
 * @throws MappingException ??
 */
protected JoinType getJoinType(
        AssociationType associationType,
        FetchMode config,
        PropertyPath path,
        String lhsTable,
        String[] lhsColumns,
        boolean nullable,
        int currentDepth,
        CascadeStyle cascadeStyle) throws MappingException {
    if  ( !isJoinedFetchEnabled( associationType, config, cascadeStyle ) ) {
        return JoinType.NONE;
    }
    if ( isTooDeep(currentDepth) || ( associationType.isCollectionType() && isTooManyCollections() ) ) {
        return JoinType.NONE;
    }
    if ( isDuplicateAssociation( lhsTable, lhsColumns, associationType ) ) {
        return JoinType.NONE;
    }
    return getJoinType( nullable, currentDepth );
}
项目:lams    文件:JoinWalker.java   
/**
 * Does the mapping, and Hibernate default semantics, specify that
 * this association should be fetched by outer joining
 */
protected boolean isJoinedFetchEnabledInMapping(FetchMode config, AssociationType type) 
throws MappingException {
    if ( !type.isEntityType() && !type.isCollectionType() ) {
        return false;
    }
    else {
        if (config==FetchMode.JOIN) return true;
        if (config==FetchMode.SELECT) return false;
        if ( type.isEntityType() ) {
            //TODO: look at the owning property and check that it 
            //      isn't lazy (by instrumentation)
            EntityType entityType =(EntityType) type;
            EntityPersister persister = getFactory().getEntityPersister( entityType.getAssociatedEntityName() );
            return !persister.hasProxy();
        }
        else {
            return false;
        }
    }
}
项目:lams    文件:CriteriaJoinWalker.java   
@Override
protected JoinType getJoinType(
        AssociationType associationType,
        FetchMode config,
        PropertyPath path,
        String lhsTable,
        String[] lhsColumns,
        boolean nullable,
        int currentDepth,
        CascadeStyle cascadeStyle) throws MappingException {
    return getJoinType(
            null,
            path,
            -1,
            associationType,
            config,
            cascadeStyle,
            lhsTable,
            lhsColumns,
            nullable,
            currentDepth
    );
}
项目:lams    文件:BaselineAttributeInformation.java   
public BaselineAttributeInformation(
        boolean lazy,
        boolean insertable,
        boolean updateable,
        ValueGeneration valueGenerationStrategy,
        boolean nullable,
        boolean dirtyCheckable,
        boolean versionable,
        CascadeStyle cascadeStyle,
        FetchMode fetchMode) {
    this.lazy = lazy;
    this.insertable = insertable;
    this.updateable = updateable;
    this.valueGenerationStrategy = valueGenerationStrategy;
    this.nullable = nullable;
    this.dirtyCheckable = dirtyCheckable;
    this.versionable = versionable;
    this.cascadeStyle = cascadeStyle;
    this.fetchMode = fetchMode;
}
项目:lams    文件:ComponentType.java   
public ComponentType(TypeFactory.TypeScope typeScope, ComponentMetamodel metamodel) {
    this.typeScope = typeScope;
    // for now, just "re-flatten" the metamodel since this is temporary stuff anyway (HHH-1907)
    this.isKey = metamodel.isKey();
    this.propertySpan = metamodel.getPropertySpan();
    this.propertyNames = new String[ propertySpan ];
    this.propertyTypes = new Type[ propertySpan ];
    this.propertyNullability = new boolean[ propertySpan ];
    this.cascade = new CascadeStyle[ propertySpan ];
    this.joinedFetch = new FetchMode[ propertySpan ];

    for ( int i = 0; i < propertySpan; i++ ) {
        StandardProperty prop = metamodel.getProperty( i );
        this.propertyNames[i] = prop.getName();
        this.propertyTypes[i] = prop.getType();
        this.propertyNullability[i] = prop.isNullable();
        this.cascade[i] = prop.getCascadeStyle();
        this.joinedFetch[i] = prop.getFetchMode();
        if (!prop.isNullable()) {
            hasNotNullProperty = true;
        }
    }

    this.entityMode = metamodel.getEntityMode();
    this.componentTuplizer = metamodel.getComponentTuplizer();
}
项目:ipf-flow-manager    文件:FlowRepositoryImpl.java   
private static DetachedCriteria createFlowsCriteria(FlowFinderCriteria finderCriteria) {
    DetachedCriteria criteria = DetachedCriteria.forClass(Flow.class)
            .setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)
            .setFetchMode("parts", FetchMode.JOIN) // eager
            .add(ge("creationTime", finderCriteria.getFrom()))
            .addOrder(Order.desc("identifier"));

    if (finderCriteria.getApplication() != null) {
        // constrain query to a certain application name
        criteria.add(eq("application", finderCriteria
                .getApplication()));
    }
    if (finderCriteria.getTo() != null) {
        // there's an upper limit to creationTime property
        criteria.add(Restrictions
                .le("creationTime", finderCriteria.getTo()));
    }

    return criteria;
}
项目:finances    文件:HibernateDaoTest.java   
@Test
public void getAllIsCacheableAndReturnsDistinctResult() throws Exception {
    List<Object> expectedResult = new ArrayList<Object>();
    when(session.createCriteria(Object.class)).thenReturn(criteria);
    when(criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY)).thenReturn(criteria);
    when(criteria.setCacheable(true)).thenReturn(criteria);
    when(criteria.setFetchMode("association", FetchMode.JOIN)).thenReturn(criteria);
    when(criteria.list()).thenReturn(expectedResult);

    assertThat(dao.getAll("association")).isSameAs(expectedResult);

    verify(sessionFactory, atLeastOnce()).getCurrentSession();
    verify(criteria).setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    verify(criteria).setCacheable(true);
    verify(criteria).setFetchMode("association", FetchMode.JOIN);
}
项目:bisis-v4    文件:GetUserCommand.java   
@Override
    public void execute() {
        try{
            Transaction tx = session.beginTransaction();
//          Query q = session.createQuery("from Users u where u.userId = :userid");
//          q.setString("userid", userID);
//          user = (Users)q.uniqueResult();
            Criteria crt = session.createCriteria(Users.class).setFetchMode("signings", FetchMode.JOIN).setFetchMode("lendings", FetchMode.JOIN)
                        .setFetchMode("duplicates", FetchMode.JOIN).setFetchMode("picturebooks", FetchMode.JOIN).setFetchMode("lendings.warningses", FetchMode.JOIN);
            crt.add( Restrictions.eq("userId", userID));
            user = (Users)crt.uniqueResult();
            tx.commit();
            log.info("loading user: "+ userID);
        }catch (Exception e){
            log.error("loading user failed: " + userID);
            log.error(e.getMessage());
        }
    }
项目:gorm-hibernate5    文件:GrailsDomainBinder.java   
/**
 * @param property The property to bind
 * @param manyToOne The inverse side
 */
protected void bindUnidirectionalOneToManyInverseValues(ToMany property, ManyToOne manyToOne) {
    PropertyConfig config = getPropertyConfig(property);
    if (config == null) {
        manyToOne.setLazy(true);
    } else {
        manyToOne.setIgnoreNotFound(config.getIgnoreNotFound());
        final FetchMode fetch = config.getFetchMode();
        if(!fetch.equals(FetchMode.JOIN) && !fetch.equals(FetchMode.EAGER)) {
            manyToOne.setLazy(true);
        }

        final Boolean lazy = config.getLazy();
        if(lazy != null) {
            manyToOne.setLazy(lazy);
        }
    }

    // set referenced entity
    manyToOne.setReferencedEntityName(property.getAssociatedEntity().getName());
}
项目:gorm-hibernate5    文件:GrailsDomainBinder.java   
/**
 */
protected void bindManyToOneValues(org.grails.datastore.mapping.model.types.Association property, ManyToOne manyToOne) {
    PropertyConfig config = getPropertyConfig(property);

    if (config != null && config.getFetchMode() != null) {
        manyToOne.setFetchMode(config.getFetchMode());
    }
    else {
        manyToOne.setFetchMode(FetchMode.DEFAULT);
    }

    manyToOne.setLazy(getLaziness(property));

    if (config != null) {
        manyToOne.setIgnoreNotFound(config.getIgnoreNotFound());
    }

    // set referenced entity
    manyToOne.setReferencedEntityName(property.getAssociatedEntity().getName());
}
项目:communote-server    文件:TaskDaoImpl.java   
/**
 * {@inheritDoc}
 * 
 * @see com.communote.server.persistence.tasks.TaskDao#findNextScheduledTasks()
 */
@SuppressWarnings("unchecked")
@Override
protected Collection<Task> handleFindNextScheduledTasks(Date upperBound, int maxTasks,
        Collection<Long> taskIdsToExclude) {
    Criteria criteria = getSession().createCriteria(Task.class);
    criteria.setFetchMode(TaskConstants.PROPERTIES, FetchMode.JOIN);
    criteria.add(Restrictions.eq(TaskConstants.TASKSTATUS, TaskStatus.PENDING));
    criteria.add(Restrictions.eq(TaskConstants.ACTIVE, true));
    criteria.addOrder(Order.asc(TaskConstants.NEXTEXECUTION));
    if (taskIdsToExclude != null && taskIdsToExclude.size() > 0) {
        criteria.add(Restrictions.not(Restrictions.in(TaskConstants.ID, taskIdsToExclude)));
    }
    if (upperBound != null) {
        criteria.add(Restrictions.lt(TaskConstants.NEXTEXECUTION, upperBound));
    }
    criteria.setMaxResults(maxTasks);
    return criteria.list();
}
项目:ephesoft    文件:FieldTypeDaoImpl.java   
/**
 * An API to fetch all Field types by document type name.
 * 
 * @param docTypeName String
 * @param batchInstanceIdentifier String
 * @param isKVExtraction boolean
 * @return List<FieldType>
 */
@Override
public List<FieldType> getFdTypeByDocumentTypeName(String docTypeName, String batchInstanceIdentifier, boolean isKVExtraction) {
    LOG.info("batchInstanceID ID  : " + batchInstanceIdentifier);
    DetachedCriteria criteria = criteria();
    criteria.createAlias(DOC_TYPE, DOC_TYPE, JoinFragment.INNER_JOIN);
    criteria.add(Restrictions.eq(DOC_TYPE_NAME, docTypeName));
    criteria.createAlias(DOC_TYPE_BATCH_CLASS, BATCH_CLASS1, JoinFragment.INNER_JOIN);

    if (isKVExtraction) {
        criteria.setFetchMode("kvExtraction", FetchMode.JOIN);
        criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    }

    DetachedCriteria subQuery = criteria(BatchInstance.class);
    subQuery.add(Restrictions.eq(IDENTIFIER, batchInstanceIdentifier));
    subQuery.createAlias(BATCH_CLASS, BATCH_CLASS2, JoinFragment.INNER_JOIN);
    subQuery.setProjection(Projections.property(BATCH_CLASS2_IDENTIFIER));
    criteria.add(Subqueries.propertyEq(BATCH_CLASS1_IDENTIFIER, subQuery));
    criteria.addOrder(org.hibernate.criterion.Order.asc(FIELD_ORDER_NUMBER));
    return find(criteria);
}
项目:ephesoft    文件:FieldTypeDaoImpl.java   
/**
 * An API to fetch all Field types by document type name.
 * 
 * @param docTypeName String
 * @param batchInstanceIdentifier String
 * @return List<FieldType>
 */
@Override
public List<FieldType> getFdTypeAndRegexValidationByDocTypeName(String docTypeName, String batchInstanceIdentifier) {

    LOG.info("batchInstanceID ID  : " + batchInstanceIdentifier);
    DetachedCriteria criteria = criteria();
    criteria.createAlias(DOC_TYPE, DOC_TYPE, JoinFragment.INNER_JOIN);
    criteria.add(Restrictions.eq(DOC_TYPE_NAME, docTypeName));
    criteria.createAlias(DOC_TYPE_BATCH_CLASS, BATCH_CLASS1, JoinFragment.INNER_JOIN);

    criteria.setFetchMode(REGEX_VALIDATION, FetchMode.JOIN);
    criteria.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);

    DetachedCriteria subQuery = criteria(BatchInstance.class);
    subQuery.add(Restrictions.eq(IDENTIFIER, batchInstanceIdentifier));
    subQuery.createAlias(BATCH_CLASS, BATCH_CLASS2, JoinFragment.INNER_JOIN);
    subQuery.setProjection(Projections.property(BATCH_CLASS2_IDENTIFIER));
    criteria.add(Subqueries.propertyEq(BATCH_CLASS1_IDENTIFIER, subQuery));
    criteria.addOrder(org.hibernate.criterion.Order.asc(FIELD_ORDER_NUMBER));

    return find(criteria);

}
项目:cacheonix-core    文件:JoinWalker.java   
/**
 * Get the join type (inner, outer, etc) or -1 if the
 * association should not be joined. Override on
 * subclasses.
 */
protected int getJoinType(
        AssociationType type, 
        FetchMode config, 
        String path, 
        String lhsTable,
        String[] lhsColumns,
        boolean nullable,
        int currentDepth, 
        CascadeStyle cascadeStyle)
throws MappingException {

    if  ( !isJoinedFetchEnabled(type, config, cascadeStyle) ) return -1;

    if ( isTooDeep(currentDepth) || ( type.isCollectionType() && isTooManyCollections() ) ) return -1;

    final boolean dupe = isDuplicateAssociation(lhsTable,  lhsColumns, type);
    if (dupe) return -1;

    return getJoinType(nullable, currentDepth);

}
项目:cacheonix-core    文件:JoinWalker.java   
/**
 * Does the mapping, and Hibernate default semantics, specify that
 * this association should be fetched by outer joining
 */
protected boolean isJoinedFetchEnabledInMapping(FetchMode config, AssociationType type) 
throws MappingException {
    if ( !type.isEntityType() && !type.isCollectionType() ) {
        return false;
    }
    else {
        if (config==FetchMode.JOIN) return true;
        if (config==FetchMode.SELECT) return false;
        if ( type.isEntityType() ) {
            //TODO: look at the owning property and check that it 
            //      isn't lazy (by instrumentation)
            EntityType entityType =(EntityType) type;
            EntityPersister persister = getFactory().getEntityPersister( entityType.getAssociatedEntityName() );
            return !persister.hasProxy();
        }
        else {
            return false;
        }
    }
}
项目:cacheonix-core    文件:ComponentType.java   
public ComponentType(ComponentMetamodel metamodel) {
    // for now, just "re-flatten" the metamodel since this is temporary stuff anyway (HHH-1907)
    this.isKey = metamodel.isKey();
    this.propertySpan = metamodel.getPropertySpan();
    this.propertyNames = new String[ propertySpan ];
    this.propertyTypes = new Type[ propertySpan ];
    this.propertyNullability = new boolean[ propertySpan ];
    this.cascade = new CascadeStyle[ propertySpan ];
    this.joinedFetch = new FetchMode[ propertySpan ];

    for ( int i = 0; i < propertySpan; i++ ) {
        StandardProperty prop = metamodel.getProperty( i );
        this.propertyNames[i] = prop.getName();
        this.propertyTypes[i] = prop.getType();
        this.propertyNullability[i] = prop.isNullable();
        this.cascade[i] = prop.getCascadeStyle();
        this.joinedFetch[i] = prop.getFetchMode();
    }

    this.tuplizerMapping = metamodel.getTuplizerMapping();
}
项目:cacheonix-core    文件:FooBarTest.java   
public void testNonlazyCollection() throws Exception {
    Session s = openSession();
    Baz baz = new Baz();
    s.save(baz);
    s.flush();
    s.connection().commit();
    s.close();

    s = openSession();
    baz = (Baz) s.createCriteria(Baz.class)
        //.setComment("criteria test")
        .setFetchMode("stringDateMap", FetchMode.EAGER)
        .uniqueResult();
    assertTrue( Hibernate.isInitialized( baz.getFooToGlarch() ) );
    assertTrue( Hibernate.isInitialized( baz.getFooComponentToFoo() ) );
    assertTrue( !Hibernate.isInitialized( baz.getStringSet() ) );
    assertTrue( Hibernate.isInitialized( baz.getStringDateMap() ) );
    s.delete(baz);
    s.flush();
    s.connection().commit();
    s.close();

}
项目:cacheonix-core    文件:WhereTest.java   
public void testWhere() {
    Session s = openSession();
    s.getTransaction().begin();
    File parent = new File("parent", null);
    s.persist( parent );
    s.persist( new File("child", parent) );
    File deletedChild = new File("deleted child", parent);
    deletedChild.setDeleted(true);
    s.persist( deletedChild );
    File deletedParent = new File("deleted parent", null);
    deletedParent.setDeleted(true);
    s.persist( deletedParent );
    s.flush();
    s.clear();
    parent = (File) s.createCriteria(File.class)
            .setFetchMode("children", FetchMode.JOIN)
            .add( Restrictions.isNull("parent") )
            .uniqueResult();
    assertEquals( parent.getChildren().size(), 1 );
    s.clear();
    parent = (File) s.createQuery("from File f left join fetch f.children where f.parent is null")
        .uniqueResult();
    assertEquals( parent.getChildren().size(), 1 );
    s.getTransaction().commit();
    s.close();
}
项目:eMonocot    文件:DaoImpl.java   
/**
 *
 * @param t
 *            Set a the fetched object
 * @param fetch
 *            Set the name of the fetch profile
 */
protected void enableProfilePostQuery(final T t, final String fetch) {
    if (fetch != null && t != null) {
        Fetch[] fetchDefs = getProfile(fetch);
        if(fetchDefs == null || fetchDefs.length < 1) {
            return;
        }
        for (Fetch f : fetchDefs) {
            if (f.getMode().equals(FetchMode.SELECT)) {
                String association = f.getAssociation();
                if (association.indexOf(".") == -1) {
                    initializeProperty(t, f.getAssociation());
                } else {
                    List<String> associations = Arrays.asList(association.split("\\."));
                    initializeProperties(t, associations);
                }
            }
        }
    }
}
项目:eMonocot    文件:TaxonDaoImpl.java   
/**
 * @param t
 *            Set the taxon
 * @param fetch
 *            Set the fetch profile
 */
@Override
public final void enableProfilePostQuery(final Taxon t, final String fetch) {
    if (fetch != null && t != null) {
        for (Fetch f : getProfile(fetch)) {
            if (f.getMode().equals(FetchMode.SELECT)) {
                String association = f.getAssociation();
                if (association.indexOf(".") == -1) {
                    initializeProperty(t, f.getAssociation());
                } else {
                    List<String> associations = Arrays.asList(association
                            .split("\\."));
                    initializeProperties(t, associations);
                }
            }
        }
    }
}
项目:powop    文件:DaoImpl.java   
/**
 *
 * @param t
 *            Set a the fetched object
 * @param fetch
 *            Set the name of the fetch profile
 */
protected void enableProfilePostQuery(final T t, final String fetch) {
    if (fetch != null && t != null) {
        Fetch[] fetchDefs = getProfile(fetch);
        if(fetchDefs == null || fetchDefs.length < 1) {
            return;
        }
        for (Fetch f : fetchDefs) {
            if (f.getMode().equals(FetchMode.SELECT)) {
                String association = f.getAssociation();
                logger.debug("Setting fetch mode to SELECT for {}", association);
                if (association.indexOf(".") == -1) {
                    initializeProperty(t, f.getAssociation());
                } else {
                    List<String> associations = Arrays.asList(association.split("\\."));
                    initializeProperties(t, associations);
                }
            }
        }
    }
}
项目:powop    文件:TaxonDaoImpl.java   
@Override
public final void enableProfilePostQuery(final Taxon t, final String fetch) {
    if (fetch != null && t != null) {
        for (Fetch f : getProfile(fetch)) {
            if (f.getMode().equals(FetchMode.SELECT)) {
                String association = f.getAssociation();
                if (association.indexOf(".") == -1) {
                    initializeProperty(t, f.getAssociation());
                } else {
                    List<String> associations = Arrays.asList(association
                            .split("\\."));
                    initializeProperties(t, associations);
                }
            }
        }
    }
}
项目:sakai    文件:ProfileDaoImpl.java   
/**
 * {@inheritDoc}
 */
public WallItemComment getWallItemComment(final long wallItemCommentId) {

    HibernateCallback<List<WallItemComment>> hcb = session -> session.createCriteria(WallItemComment.class)
               .add(Restrictions.eq(ID, wallItemCommentId))
               .setFetchMode("wallItem", FetchMode.JOIN)
               .list();

    List<WallItemComment> comments = getHibernateTemplate().execute(hcb);

    if (comments.size() > 0) {
        return comments.get(0);
    } else {
        return null;
    }
}
项目:sakai    文件:GradebookManagerImpl.java   
public Gradebook getGradebookByTitleAndContext(final String title,
        final String context) {
    if (title == null || context == null) {
        throw new IllegalArgumentException("Null Argument");
    } else {
        HibernateCallback hcb = session -> {
               Criteria crit = session.createCriteria(GradebookImpl.class).add(
                       Expression.eq(TITLE, title)).add(Expression.eq(CONTEXT, context))
                       .setFetchMode(STUDENTS, FetchMode.EAGER);

               Gradebook gradebook = (Gradebook) crit.uniqueResult();

               return gradebook;
           };
        return (Gradebook) getHibernateTemplate().execute(hcb);
    }

}
项目:sakai    文件:GradebookManagerImpl.java   
public SortedSet getStudentGradesForGradebook(final Gradebook gradebook)
        throws IllegalArgumentException {
    if (gradebook == null) {
        throw new IllegalArgumentException("Null Argument");
    } else {
        HibernateCallback hcb = session -> {
               // get syllabi in an eager fetch mode
               Criteria crit = session.createCriteria(Gradebook.class).add(
                       Expression.eq(ID, gradebook.getId())).setFetchMode(STUDENTS,
                       FetchMode.EAGER);

               Gradebook grades = (Gradebook) crit.uniqueResult();

               if (grades != null) {
                   return grades.getStudents();
               }
               return new TreeSet();
           };
        return (SortedSet) getHibernateTemplate().execute(hcb);
    }
}
项目:sakai    文件:SyllabusManagerImpl.java   
/**
 * getSyllabiForSyllabusItem returns the collection of syllabi
 * @param syllabusItem
 */
public Set getSyllabiForSyllabusItem(final SyllabusItem syllabusItem)
{
  if (syllabusItem == null)
  {
    throw new IllegalArgumentException("Null Argument");
  }
  else
  {                 
    HibernateCallback<Set> hcb = session -> {
      // get syllabi in an eager fetch mode
      Criteria crit = session.createCriteria(SyllabusItemImpl.class)
                  .add(Expression.eq(SURROGATE_KEY, syllabusItem.getSurrogateKey()))
                  .setFetchMode(SYLLABI, FetchMode.EAGER);


      SyllabusItem syllabusItem1 = (SyllabusItem) crit.uniqueResult();

      if (syllabusItem1 != null){
        return syllabusItem1.getSyllabi();
      }
      return new TreeSet();
    };
    return getHibernateTemplate().execute(hcb);
  }
}
项目:sakai    文件:SyllabusManagerImpl.java   
public Set getSyllabusAttachmentsForSyllabusData(final SyllabusData syllabusData)
{
  if (syllabusData == null)
  {
    throw new IllegalArgumentException("Null Argument");
  }
  else
  {                 
    HibernateCallback<Set<SyllabusAttachment>> hcb = session -> {
      Criteria crit = session.createCriteria(SyllabusDataImpl.class)
                  .add(Expression.eq(SYLLABUS_DATA_ID, syllabusData.getSyllabusId()))
                  .setFetchMode(ATTACHMENTS, FetchMode.EAGER);


      SyllabusData syllabusData1 = (SyllabusData) crit.uniqueResult();

      if (syllabusData1 != null){
        return syllabusData1.getAttachments();
      }
      return new TreeSet();
    };
    return getHibernateTemplate().execute(hcb);
  }
}
项目:webcurator    文件:TargetDAOImpl.java   
/**
 * Find all the groups that need to be end dated.
 * @return A List of groups to be end dated.
 */
@SuppressWarnings("unchecked")
public List<TargetGroup> findEndedGroups() {
    return getHibernateTemplate().executeFind(new HibernateCallback() {
        public Object doInHibernate(Session aSession) throws HibernateException, SQLException {
            List<TargetGroup> results = aSession.createCriteria(TargetGroup.class)
                .add(Restrictions.ne("state", TargetGroup.STATE_ACTIVE))
                .add(Restrictions.lt("toDate", new Date()))
                .setFetchMode("schedules", FetchMode.JOIN)
                .setFetchMode("parents", FetchMode.JOIN)
                .setFetchMode("children", FetchMode.JOIN)
                .list();

            log.debug("Found " + results.size() + " groups that need to be unscheduled");

            return results;
        }
    });
}
项目:HibernateDemos    文件:Join.java   
@SuppressWarnings("unchecked")
    public List<User> getUsers() {
        final Session session = openSession();
        session.getTransaction().begin();

        // Note: Can use multiple associations with JOIN fetch mode if they are *not*, but results in a cartesian product!

        final List<User> users = session
                .createCriteria( User.class )
                .setFetchMode( "projectsSubmitted", FetchMode.JOIN )
//              .setFetchMode( "projectsOrganized", FetchMode.JOIN )
                .list();

        session.getTransaction().commit();
        return users;
    }
项目:HibernateDemos    文件:Select.java   
@SuppressWarnings("unchecked")
public List<User> getUsers() {
    final Session session = openSession();
    session.getTransaction().begin();

    final List<User> users = session
            .createCriteria( User.class )
            .setFetchMode( "communityMemberships", FetchMode.SELECT ) // not necessary (default)
            .list();

    // init
    users.get( 0 ).getCommunityMemberships().size();
    users.get( 1 ).getCommunityMemberships().size();

    session.getTransaction().commit();
    return users;
}
项目:java-classic-playground    文件:Program.java   
private static void runStatefulCriteria() throws Exception {
  Stopwatch watch = Stopwatch.createStarted();
  Session session = sessionFactory.openSession();
  try {
    session.getTransaction().begin();
    @SuppressWarnings("unchecked")
    List<Driver> list = 
      session
        .createCriteria(Driver.class)
        .setFetchMode("cars", FetchMode.JOIN)
        .setCacheable(true)
        .setCacheMode(CacheMode.NORMAL)
        .list();
    for (Driver entry : list) {
      LOG.info("Entry " + entry.getId());
    }
    session.getTransaction().commit();
  } catch (Exception ex) {
    session.getTransaction().rollback();
    throw ex;
  } finally {
    session.close();
  }
  LOG.info("StatefulCriteria:=" + watch.toString());
}
项目:sakai    文件:ProfileDaoImpl.java   
/**
 * {@inheritDoc}
 */
public WallItemComment getWallItemComment(final long wallItemCommentId) {

    HibernateCallback<List<WallItemComment>> hcb = session -> session.createCriteria(WallItemComment.class)
               .add(Restrictions.eq(ID, wallItemCommentId))
               .setFetchMode("wallItem", FetchMode.JOIN)
               .list();

    List<WallItemComment> comments = getHibernateTemplate().execute(hcb);

    if (comments.size() > 0) {
        return comments.get(0);
    } else {
        return null;
    }
}
项目:sakai    文件:GradebookManagerImpl.java   
public Gradebook getGradebookByTitleAndContext(final String title,
        final String context) {
    if (title == null || context == null) {
        throw new IllegalArgumentException("Null Argument");
    } else {
        HibernateCallback hcb = session -> {
               Criteria crit = session.createCriteria(GradebookImpl.class).add(
                       Expression.eq(TITLE, title)).add(Expression.eq(CONTEXT, context))
                       .setFetchMode(STUDENTS, FetchMode.EAGER);

               Gradebook gradebook = (Gradebook) crit.uniqueResult();

               return gradebook;
           };
        return (Gradebook) getHibernateTemplate().execute(hcb);
    }

}
项目:sakai    文件:GradebookManagerImpl.java   
public SortedSet getStudentGradesForGradebook(final Gradebook gradebook)
        throws IllegalArgumentException {
    if (gradebook == null) {
        throw new IllegalArgumentException("Null Argument");
    } else {
        HibernateCallback hcb = session -> {
               // get syllabi in an eager fetch mode
               Criteria crit = session.createCriteria(Gradebook.class).add(
                       Expression.eq(ID, gradebook.getId())).setFetchMode(STUDENTS,
                       FetchMode.EAGER);

               Gradebook grades = (Gradebook) crit.uniqueResult();

               if (grades != null) {
                   return grades.getStudents();
               }
               return new TreeSet();
           };
        return (SortedSet) getHibernateTemplate().execute(hcb);
    }
}
项目:sakai    文件:SyllabusManagerImpl.java   
/**
 * getSyllabiForSyllabusItem returns the collection of syllabi
 * @param syllabusItem
 */
public Set getSyllabiForSyllabusItem(final SyllabusItem syllabusItem)
{
  if (syllabusItem == null)
  {
    throw new IllegalArgumentException("Null Argument");
  }
  else
  {                 
    HibernateCallback<Set> hcb = session -> {
      // get syllabi in an eager fetch mode
      Criteria crit = session.createCriteria(SyllabusItemImpl.class)
                  .add(Expression.eq(SURROGATE_KEY, syllabusItem.getSurrogateKey()))
                  .setFetchMode(SYLLABI, FetchMode.EAGER);


      SyllabusItem syllabusItem1 = (SyllabusItem) crit.uniqueResult();

      if (syllabusItem1 != null){
        return syllabusItem1.getSyllabi();
      }
      return new TreeSet();
    };
    return getHibernateTemplate().execute(hcb);
  }
}
项目:sakai    文件:SyllabusManagerImpl.java   
public Set getSyllabusAttachmentsForSyllabusData(final SyllabusData syllabusData)
{
  if (syllabusData == null)
  {
    throw new IllegalArgumentException("Null Argument");
  }
  else
  {                 
    HibernateCallback<Set<SyllabusAttachment>> hcb = session -> {
      Criteria crit = session.createCriteria(SyllabusDataImpl.class)
                  .add(Expression.eq(SYLLABUS_DATA_ID, syllabusData.getSyllabusId()))
                  .setFetchMode(ATTACHMENTS, FetchMode.EAGER);


      SyllabusData syllabusData1 = (SyllabusData) crit.uniqueResult();

      if (syllabusData1 != null){
        return syllabusData1.getAttachments();
      }
      return new TreeSet();
    };
    return getHibernateTemplate().execute(hcb);
  }
}
项目:SIRME    文件:QuestionsDaoImpl.java   
@Override
    public WorkData getWork(int idAddress){
        MyLogger.info(log , CLASS_NAME, "getWork", "INIT");

        WorkData c = (WorkData)  getSessionFactory().getCurrentSession().createCriteria(WorkData.class)
                .setFetchMode("replyGroups", FetchMode.JOIN)
                .createAlias("replyGroups", "r", CriteriaSpecification.LEFT_JOIN)
                .setFetchMode("r.replies", FetchMode.JOIN)
//              .createAlias("replies", "re", CriteriaSpecification.LEFT_JOIN)
//              .setFetchMode("re.question", FetchMode.JOIN)
                .add( Restrictions.idEq(idAddress) )
                .uniqueResult();

        MyLogger.info(log , CLASS_NAME, "getWork", "END");
        return c;
    }
项目:SIRME    文件:QuestionsDaoImpl.java   
@Override
public WorkData getWorkByAddress(int idAddress){
    MyLogger.info(log , CLASS_NAME, "getWorkByAddress", "INIT");

    WorkData c0 = null;

    @SuppressWarnings("unchecked")
    List<WorkData> c = (List<WorkData>)  getSessionFactory().getCurrentSession().createCriteria(WorkData.class)
            .setFetchMode("replyGroups", FetchMode.JOIN)
            .createAlias("replyGroups", "r", CriteriaSpecification.LEFT_JOIN)
            .setFetchMode("r.replies", FetchMode.JOIN)
               .add(Restrictions.eq("address.idaddress",idAddress))
               .addOrder(Order.desc("dateCreated"))
               .list();

    if (!c.isEmpty())
        c0 = c.get(0);

    MyLogger.info(log , CLASS_NAME, "getWorkByAddress", "END");
    return c0;
}