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


Java SessionFactoryImpl类代码示例

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


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

示例1: testQueryCacheCleanup

import org.hibernate.impl.SessionFactoryImpl; //导入依赖的package包/类
@Test
public void testQueryCacheCleanup() {
    MapConfig mapConfig = getHazelcastInstance(sf).getConfig().getMapConfig("org.hibernate.cache.*");
    final float baseEvictionRate = 0.2f;
    final int numberOfEntities = 100;
    final int defaultCleanupPeriod = 60;
    final int maxSize = mapConfig.getMaxSizeConfig().getSize();
    final int evictedItemCount = numberOfEntities - maxSize + (int) (maxSize * baseEvictionRate);
    insertDummyEntities(numberOfEntities);
    sleep(1);
    for (int i = 0; i < numberOfEntities; i++) {
        executeQuery(sf, i);
    }

    HazelcastQueryResultsRegion queryRegion = ((HazelcastQueryResultsRegion) (((SessionFactoryImpl) sf).getQueryCache()).getRegion());
    assertEquals(numberOfEntities, queryRegion.getCache().size());
    sleep(defaultCleanupPeriod);

    assertEquals(numberOfEntities - evictedItemCount, queryRegion.getCache().size());
}
 
开发者ID:hazelcast,项目名称:hazelcast-hibernate,代码行数:21,代码来源:RegionFactoryDefaultSlowTest.java

示例2: buildSessionFactory

import org.hibernate.impl.SessionFactoryImpl; //导入依赖的package包/类
/**
 * Instantiate a new <tt>SessionFactory</tt>, using the properties and
 * mappings in this configuration. The <tt>SessionFactory</tt> will be
 * immutable, so changes made to the <tt>Configuration</tt> after
 * building the <tt>SessionFactory</tt> will not affect it.
 *
 * @return a new factory for <tt>Session</tt>s
 * @see org.hibernate.SessionFactory
 */
public SessionFactory buildSessionFactory() throws HibernateException {
	log.debug( "Preparing to build session factory with filters : " + filterDefinitions );
	secondPassCompile();
	validate();
	Environment.verifyProperties( properties );
	Properties copy = new Properties();
	copy.putAll( properties );
	PropertiesHelper.resolvePlaceHolders( copy );
	Settings settings = buildSettings( copy );

	return new SessionFactoryImpl(
			this,
			mapping,
			settings,
			getInitializedEventListeners()
		);
}
 
开发者ID:cacheonix,项目名称:cacheonix-core,代码行数:27,代码来源:Configuration.java

示例3: getXsqlBuilder

import org.hibernate.impl.SessionFactoryImpl; //导入依赖的package包/类
/**
 * 取得XsqlBuilder对象
 * @return 返回XsqlBuilder对象
 */
protected XsqlBuilder getXsqlBuilder() {
	SessionFactoryImpl sf = (SessionFactoryImpl)(getSessionFactory());
	Dialect dialect = sf.getDialect();
	
	//or SafeSqlProcesserFactory.getMysql();
	SafeSqlProcesser safeSqlProcesser = SafeSqlProcesserFactory.getFromCacheByHibernateDialect(dialect); 
	XsqlBuilder builder = new XsqlBuilder(safeSqlProcesser);
	
	if(builder.getSafeSqlProcesser().getClass() == DirectReturnSafeSqlProcesser.class) {
		System.err.println(BaseHibernateDao.class.getSimpleName()+".getXsqlBuilder(): 故意报错,你未开启Sql安全过滤,单引号等转义字符在拼接sql时需要转义,不然会导致Sql注入攻击的安全问题,请修改源码使用new XsqlBuilder(SafeSqlProcesserFactory.getDataBaseName())开启安全过滤");
	}
	return builder;
}
 
开发者ID:545473750,项目名称:zswxsqxt,代码行数:18,代码来源:BaseHibernateDao.java

示例4: HibernateMigrationHelper

import org.hibernate.impl.SessionFactoryImpl; //导入依赖的package包/类
public HibernateMigrationHelper(HibernateFactory factory, String defaultSchema)
{
	this.factory = (SessionFactoryImpl) factory.getSessionFactory();
	dialect = this.factory.getDialect();
	extDialect = (ExtendedDialect) dialect;
	this.configuration = factory.getConfiguration();
	mapping = configuration.buildMapping();
	this.defaultSchema = defaultSchema;
	defaultCatalog = null;
}
 
开发者ID:equella,项目名称:Equella,代码行数:11,代码来源:HibernateMigrationHelper.java

示例5: registerSQLFunction

import org.hibernate.impl.SessionFactoryImpl; //导入依赖的package包/类
/**
 * Register a sql function in the session factory, after this call it can be used by queries.
 */
public void registerSQLFunction(String name, SQLFunction function) {
  final DalSessionFactory dalSessionFactory = (DalSessionFactory) SessionFactoryController
      .getInstance().getSessionFactory();

  final Dialect dialect = ((SessionFactoryImpl) dalSessionFactory.getDelegateSessionFactory())
      .getDialect();
  dialect.getFunctions().put(name, function);
}
 
开发者ID:mauyr,项目名称:openbravo-brazil,代码行数:12,代码来源:OBDal.java

示例6: createAndStoreCommonNote

import org.hibernate.impl.SessionFactoryImpl; //导入依赖的package包/类
/**
 * Creates a new note and stores in within the db.
 *
 * @param topic
 *            The topic.
 * @param creatorId
 *            The creator.
 * @param content
 *            The content.
 * @param attachmentIds
 *            List of attachments for note.
 * @param parentNoteId
 *            If not null, this note will be reply to the given parent note.
 * @param creationDate
 *            The creation date of the note.
 * @return Id of the created note.
 * @throws TestUtilsException
 *             Exception.
 */
public static Long createAndStoreCommonNote(Blog topic, Long creatorId, String content,
        Long[] attachmentIds, Long parentNoteId, Date creationDate) throws TestUtilsException {
    NoteStoringTO note = createCommonNote(topic, creatorId, content, attachmentIds);
    note.setParentNoteId(parentNoteId);
    note.setCreationDate(creationDate == null ? null : new Timestamp(creationDate.getTime()));
    try {
        Long noteId;
        if (parentNoteId == null) {
            noteId = ServiceLocator.findService(NoteService.class)
                    .createNote(note, new HashSet<String>()).getNoteId();
        } else {
            note.setParentNoteId(parentNoteId);
            noteId = ServiceLocator.findService(NoteService.class).createNote(note, null)
                    .getNoteId();
        }
        // TODO why manually evicting the just created note? Well could be useful for tests
        // where the creationDate or modificationDate of the created note is used in further
        // operations that query the database. MySQL has only seconds-precision. When getting
        // the note it is loaded from cache which still has the date with milliseconds and not
        // the value that was stored in database. Maybe we should optimize this with an
        // additional boolean parameter that when true will evict the note.
        ServiceLocator.instance().getService("sessionFactory", SessionFactoryImpl.class)
                .getCache().evictEntity(Note.class, noteId);
        return noteId;
    } catch (BlogNotFoundException | NoteStoringPreProcessorException
            | NoteManagementAuthorizationException e) {
        throw new TestUtilsException(e);
    }
}
 
开发者ID:Communote,项目名称:communote-server,代码行数:49,代码来源:TestUtils.java

示例7: hqlToSql

import org.hibernate.impl.SessionFactoryImpl; //导入依赖的package包/类
/**
 * hql转sql
 * 
 * @param hql
 * @return sql语句
 */
public static String hqlToSql(String hql,SessionFactory sessionFactory) {
	SessionFactoryImpl sessionFactoryImpl = (SessionFactoryImpl) sessionFactory;
	QueryTranslatorFactory queryTranslatorFactory = sessionFactoryImpl.getSettings().getQueryTranslatorFactory();
	FilterTranslator filterTranslator = queryTranslatorFactory.createFilterTranslator(hql, hql, Collections.EMPTY_MAP, sessionFactoryImpl);
	filterTranslator.compile(Collections.EMPTY_MAP, false);
	return filterTranslator.getSQLString();
}
 
开发者ID:VonChange,项目名称:haloDao-Hibernate3,代码行数:14,代码来源:HibernateUtils.java

示例8: hqlToSqlByPlaceholder

import org.hibernate.impl.SessionFactoryImpl; //导入依赖的package包/类
/**
 *  TODO 占位符方式转sql
 * @param hql
 * @param sessionFactory
 * @return
 */
public static String hqlToSqlByPlaceholder(String hql,SessionFactory sessionFactory) {
	SessionFactoryImpl sessionFactoryImpl = (SessionFactoryImpl) sessionFactory;
	QueryTranslatorFactory queryTranslatorFactory = sessionFactoryImpl.getSettings().getQueryTranslatorFactory();
	FilterTranslator filterTranslator = queryTranslatorFactory.createFilterTranslator(hql, hql, Collections.EMPTY_MAP, sessionFactoryImpl);
	filterTranslator.compile(Collections.EMPTY_MAP, false);
	String sql=filterTranslator.getSQLString();
	return getPlaceholderSql(hql, sql);
}
 
开发者ID:VonChange,项目名称:haloDao-Hibernate3,代码行数:15,代码来源:HibernateUtils.java

示例9: getFactory

import org.hibernate.impl.SessionFactoryImpl; //导入依赖的package包/类
public SessionFactoryImpl getFactory()
{
	return factory;
}
 
开发者ID:equella,项目名称:Equella,代码行数:5,代码来源:HibernateMigrationHelper.java

示例10: testSecondLevelCachedCollectionsFiltering

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

	Session session = openSession();

	// Force a collection into the second level cache, with its non-filtered elements
	Salesperson sp = ( Salesperson ) session.load( Salesperson.class, testData.steveId );
	Hibernate.initialize( sp.getOrders() );
	CollectionPersister persister = ( ( SessionFactoryImpl ) getSessions() )
	        .getCollectionPersister( Salesperson.class.getName() + ".orders" );
	assertTrue( "No cache for collection", persister.hasCache() );
	CollectionCacheEntry cachedData = ( CollectionCacheEntry ) persister.getCache().getCache()
	        .read( new CacheKey( testData.steveId, persister.getKeyType(), persister.getRole(), EntityMode.POJO, sfi() ) );
	assertNotNull( "collection was not in cache", cachedData );

	session.close();

	session = openSession();
	session.enableFilter( "fulfilledOrders" ).setParameter( "asOfDate", testData.lastMonth.getTime() );
	sp = ( Salesperson ) session.createQuery( "from Salesperson as s where s.id = :id" )
	        .setLong( "id", testData.steveId.longValue() )
	        .uniqueResult();
	assertEquals( "Filtered-collection not bypassing 2L-cache", 1, sp.getOrders().size() );

	CollectionCacheEntry cachedData2 = ( CollectionCacheEntry ) persister.getCache().getCache()
	        .read( new CacheKey( testData.steveId, persister.getKeyType(), persister.getRole(), EntityMode.POJO, sfi() ) );
	assertNotNull( "collection no longer in cache!", cachedData2 );
	assertSame( "Different cache values!", cachedData, cachedData2 );

	session.close();

	session = openSession();
	session.enableFilter( "fulfilledOrders" ).setParameter( "asOfDate", testData.lastMonth.getTime() );
	sp = ( Salesperson ) session.load( Salesperson.class, testData.steveId );
	assertEquals( "Filtered-collection not bypassing 2L-cache", 1, sp.getOrders().size() );

	session.close();

	// Finally, make sure that the original cached version did not get over-written
	session = openSession();
	sp = ( Salesperson ) session.load( Salesperson.class, testData.steveId );
	assertEquals( "Actual cached version got over-written", 2, sp.getOrders().size() );

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

示例11: findPasswordByFuzzySearch

import org.hibernate.impl.SessionFactoryImpl; //导入依赖的package包/类
@Override
@SuppressWarnings("unchecked")
public List<Password> findPasswordByFuzzySearch(String query, User user, boolean activeOnly, Collection<Tag> tags, Match tagMatch)
{
    //kludge to not use ilike on text column if MSSQL
    boolean isMSSQL = ((SessionFactoryImpl)getSessionFactory()).getDialect().toString().contains("SQLServer");
    Criteria crit = getSession().createCriteria(getPersistentClass());
    crit.setFetchMode("tags", FetchMode.JOIN);
    crit.add(Restrictions.or(Restrictions.or(Restrictions.ilike("name", query, MatchMode.ANYWHERE), 
            Restrictions.ilike("username", query, MatchMode.ANYWHERE)), isMSSQL ? 
            Restrictions.like("notes", query, MatchMode.ANYWHERE) : 
            Restrictions.ilike("notes", query, MatchMode.ANYWHERE)));
    if (activeOnly)
    {
        crit.add(Restrictions.eq("active", true));
    }
    Criterion tagsCriterion = null;
    for (Tag tag : tags)
    {
        Criterion tc = Restrictions.sqlRestriction("? in (select tag_id from password_tags where password_id = {alias}.id)", tag.getId(), StandardBasicTypes.LONG); 
        if (null == tagsCriterion)
        {
            tagsCriterion = tc;
        }
        else
        {
            tagsCriterion = tagMatch.equals(Match.AND) ? Restrictions.and(tagsCriterion, tc) : Restrictions.or(tagsCriterion, tc);
        }
    }
    if (tagsCriterion != null) crit.add(tagsCriterion);
    crit.createAlias("permissions", "pm");
    crit.add(Restrictions.in("pm.accessLevel", 
            new String[] {AccessLevel.READ.name(), AccessLevel.WRITE.name(), AccessLevel.GRANT.name()}));
    if (!authorizer.isAuthorized(user, Function.BYPASS_PASSWORD_PERMISSIONS.name()))
    {
        DetachedCriteria groupQuery = DetachedCriteria.forClass(Group.class);
        groupQuery.setProjection(Projections.id());
        groupQuery.createCriteria("users", "u").add(Restrictions.eq("u.id", user.getId()));
        crit.add(Restrictions.or(Restrictions.eq("pm.subject", user), Subqueries.propertyIn("pm.subject", groupQuery)));
    }
    crit.addOrder(Order.asc("name"));
    crit.setResultTransformer(Criteria.DISTINCT_ROOT_ENTITY);
    return crit.list();
}
 
开发者ID:alfameCom,项目名称:salasanasiilo,代码行数:45,代码来源:PasswordDAOHibernate.java

示例12: testBuild

import org.hibernate.impl.SessionFactoryImpl; //导入依赖的package包/类
public void testBuild() throws Exception {
	// 持久类对象描述
	RenderClass rc = new RenderClass();
	ArrayList list = new ArrayList();

	RenderProperty property = new RenderProperty();
	// 添加主键
	property.setName("oid");
	property.setField("oid");
	property.setLength(new Integer(15));
	property.setPrimary(true);
	property.setType(Long.class.getName());
	//property.setSequence("SEQ_PERSON");

	list.add(property);
	// 添加一个name字段
	property = new RenderProperty();
	property.setName("name");
	property.setType(String.class.getName());
	property.setField("name");
	property.setLength(new Integer(20));

	list.add(property);

	rc.setProperties(list);
	// 类名
	rc.setClassName("com.rayleigh.asm.bean.Person");
	rc.setTableName("person1");
	// 开始生成class
	POBuildUtil util = new POBuildUtil();
	util.build(rc.getClassName(),
			//G:\javaSoft\excelutil\bin\com\rayleigh\asm\bean
			"G:\\javaSoft\\excelutil\\bin\\com\\rayleigh\\asm\\bean\\Person.class",
			list);
	// 实例化一个person
	Object person = Class.forName("com.rayleigh.asm.bean.Person").newInstance();// hbmcls.newInstance();

	// 开始生成hbm.xml
	FreemarkerRender render = new FreemarkerRender();
	render.render(rc, Templates.TEMPLATE_HIBERNATE3,
			"G:\\javaSoft\\excelutil\\bin\\com\\rayleigh\\asm\\bean\\person.hbm.xml");
	URL url = this.getClass().getResource("/com/rayleigh/asm/bean/person.hbm.xml");
	config.addURL(url);
	// 更新hibernate.cfg.xml
	HibernateUtil.updateHbmCfg(
			this.getClass().getResource(
					"/com/rayleigh/hibernate/hibernate.cfg.xml"),
			"com/rayleigh/asm/bean/person.hbm.xml");

	PersistentClass model = config.getClassMapping("com.rayleigh.asm.bean.Person");
	// sessionFactory哪下子,快接纳person爷爷进去
	((SessionFactoryImpl) factory).addPersistentClass(model,
			config.getMapping());
	// 生成数据库
	SchemaExport export = new SchemaExport(config,
			((SessionFactoryImpl) factory).getSettings());
	export.execute(true, true, false, true);
	// 测试一下,随便给个名字什么的
	PropertyUtils.setProperty(person, "name", "rayleigh");
	Session session = factory.openSession();
	Transaction tran = session.beginTransaction();
	try {
		// 保存
		session.save(person);
		tran.commit();
	} catch (Exception e) {
		e.printStackTrace();
		tran.rollback();
	} finally {
		session.close();
	}
}
 
开发者ID:RayleighChen,项目名称:Improve,代码行数:73,代码来源:HibernateTest.java


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