类org.hibernate.SessionBuilder源码实例Demo

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

源代码1 项目: lams   文件: AbstractCurrentSessionContext.java
protected SessionBuilder baseSessionBuilder() {
	final SessionBuilder builder = factory.withOptions();
	final CurrentTenantIdentifierResolver resolver = factory.getCurrentTenantIdentifierResolver();
	if ( resolver != null ) {
		builder.tenantIdentifier( resolver.resolveCurrentTenantIdentifier() );
	}
	return builder;
}
 
@Test
public void testTransactionCommitWithEntityInterceptor() throws Exception {
	Interceptor entityInterceptor = mock(Interceptor.class);
	Connection con = mock(Connection.class);
	final SessionFactory sf = mock(SessionFactory.class);
	ImplementingSession session = mock(ImplementingSession.class);
	SessionBuilder options = mock(SessionBuilder.class);
	Transaction tx = mock(Transaction.class);

	given(sf.withOptions()).willReturn(options);
	given(options.interceptor(entityInterceptor)).willReturn(options);
	given(options.openSession()).willReturn(session);
	given(session.beginTransaction()).willReturn(tx);
	given(session.isOpen()).willReturn(true);
	given(session.isConnected()).willReturn(true);
	given(session.connection()).willReturn(con);

	HibernateTransactionManager tm = new HibernateTransactionManager(sf);
	tm.setEntityInterceptor(entityInterceptor);
	tm.setAllowResultAccessAfterCompletion(true);
	TransactionTemplate tt = new TransactionTemplate(tm);
	tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
	assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
	assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());

	tt.execute(new TransactionCallbackWithoutResult() {
		@Override
		public void doInTransactionWithoutResult(TransactionStatus status) {
			assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
		}
	});

	assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
	assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());

	verify(session).close();
	verify(tx).commit();
}
 
源代码3 项目: judgels   文件: LegacySessionFactory.java
@Override
public SessionBuilder withOptions() {
    return null;
}
 
源代码4 项目: lams   文件: AbstractDelegatingSessionBuilder.java
public AbstractDelegatingSessionBuilder(SessionBuilder delegate) {
	this.delegate = delegate;
}
 
源代码5 项目: lams   文件: AbstractDelegatingSessionBuilder.java
protected SessionBuilder delegate() {
	return delegate;
}
 
@Test
public void testTransactionCommitWithEntityInterceptorBeanName() throws Exception {
	Interceptor entityInterceptor = mock(Interceptor.class);
	Interceptor entityInterceptor2 = mock(Interceptor.class);
	Connection con = mock(Connection.class);
	final SessionFactory sf = mock(SessionFactory.class);
	ImplementingSession session = mock(ImplementingSession.class);
	SessionBuilder options = mock(SessionBuilder.class);
	Transaction tx = mock(Transaction.class);

	given(sf.withOptions()).willReturn(options);
	given(options.interceptor(entityInterceptor)).willReturn(options);
	given(options.interceptor(entityInterceptor2)).willReturn(options);
	given(options.openSession()).willReturn(session);
	given(session.beginTransaction()).willReturn(tx);
	given(session.isOpen()).willReturn(true);
	given(session.isConnected()).willReturn(true);
	given(session.connection()).willReturn(con);

	BeanFactory beanFactory = mock(BeanFactory.class);
	given(beanFactory.getBean("entityInterceptor", Interceptor.class)).willReturn(
			entityInterceptor, entityInterceptor2);

	HibernateTransactionManager tm = new HibernateTransactionManager(sf);
	tm.setEntityInterceptorBeanName("entityInterceptor");
	tm.setBeanFactory(beanFactory);

	TransactionTemplate tt = new TransactionTemplate(tm);
	tt.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
	assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
	assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());

	for (int i = 0; i < 2; i++) {
		tt.execute(new TransactionCallbackWithoutResult() {
			@Override
			public void doInTransactionWithoutResult(TransactionStatus status) {
				assertTrue("Has thread session", TransactionSynchronizationManager.hasResource(sf));
			}
		});
	}

	assertTrue("Hasn't thread session", !TransactionSynchronizationManager.hasResource(sf));
	assertTrue("JTA synchronizations not active", !TransactionSynchronizationManager.isSynchronizationActive());

	verify(session, times(2)).close();
	verify(tx, times(2)).commit();
}
 
/** {@inheritDoc} */
@Override public SessionBuilder withOptions() {
    return null;
}
 
/** {@inheritDoc} */
@Override public SessionBuilder withOptions() {
    return null;
}
 
/** {@inheritDoc} */
@Override public SessionBuilder withOptions() {
    return null;
}
 
 类所在包
 类方法
 同包方法