类org.hibernate.procedure.ProcedureCall源码实例Demo

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

@Test
public void testHibernateProcedureCallRefCursor() {
    doInJPA(entityManager -> {
        Session session = entityManager.unwrap(Session.class);
        ProcedureCall call = session.createStoredProcedureCall("post_comments");
        call.registerParameter(1, Long.class, ParameterMode.IN).bindValue(1L);
        call.registerParameter(2, Class.class, ParameterMode.REF_CURSOR);

        ProcedureOutputs outputs = call.getOutputs();
        try {
            Output output = outputs.getCurrent();

            if (output.isResultSet()) {
                List<Object[]> postComments = ((ResultSetOutput) output).getResultList();
                assertEquals(2, postComments.size());
            }
        } finally {
            outputs.release();
        }
    });
}
 
@Test
public void testHibernateProcedureCallRefCursor() {
    doInJPA(entityManager -> {
        Session session = entityManager.unwrap(Session.class);
        ProcedureCall call = session
            .createStoredProcedureCall("post_comments");
        call.registerParameter(1, void.class, ParameterMode.REF_CURSOR);
        call.registerParameter(2, Long.class, ParameterMode.IN).bindValue(1L);

        Output output = call.getOutputs().getCurrent();
        if (output.isResultSet()) {
            List<Object[]> postComments = ((ResultSetOutput) output).getResultList();
            assertEquals(2, postComments.size());
        }
    });
}
 
源代码3 项目: lams   文件: AbstractSharedSessionContract.java
@Override
	@SuppressWarnings("UnnecessaryLocalVariable")
	public ProcedureCall getNamedProcedureCall(String name) {
		checkOpen();

		final ProcedureCallMemento memento = factory.getNamedQueryRepository().getNamedProcedureCallMemento( name );
		if ( memento == null ) {
			throw new IllegalArgumentException(
					"Could not find named stored procedure call with that registration name : " + name
			);
		}
		final ProcedureCall procedureCall = memento.makeProcedureCall( this );
//		procedureCall.setComment( "Named stored procedure call [" + name + "]" );
		return procedureCall;
	}
 
源代码4 项目: lams   文件: AbstractSharedSessionContract.java
@Override
	@SuppressWarnings("UnnecessaryLocalVariable")
	public ProcedureCall createStoredProcedureCall(String procedureName) {
		checkOpen();
		final ProcedureCall procedureCall = new ProcedureCallImpl( this, procedureName );
//		call.setComment( "Dynamic stored procedure call" );
		return procedureCall;
	}
 
源代码5 项目: lams   文件: AbstractSharedSessionContract.java
@Override
	@SuppressWarnings("UnnecessaryLocalVariable")
	public ProcedureCall createStoredProcedureCall(String procedureName, Class... resultClasses) {
		checkOpen();
		final ProcedureCall procedureCall = new ProcedureCallImpl( this, procedureName, resultClasses );
//		call.setComment( "Dynamic stored procedure call" );
		return procedureCall;
	}
 
源代码6 项目: lams   文件: AbstractSharedSessionContract.java
@Override
	@SuppressWarnings("UnnecessaryLocalVariable")
	public ProcedureCall createStoredProcedureCall(String procedureName, String... resultSetMappings) {
		checkOpen();
		final ProcedureCall procedureCall = new ProcedureCallImpl( this, procedureName, resultSetMappings );
//		call.setComment( "Dynamic stored procedure call" );
		return procedureCall;
	}
 
@Test
public void testHibernateProcedureCallOutParameter() {
    doInJPA(entityManager -> {
        Session session = entityManager.unwrap(Session.class);
        ProcedureCall call = session.createStoredProcedureCall("count_comments");
        call.registerParameter("postId", Long.class, ParameterMode.IN).bindValue(1L);
        call.registerParameter("commentCount", Long.class, ParameterMode.OUT);

        Long commentCount = (Long) call.getOutputs().getOutputParameterValue("commentCount");
        assertEquals(Long.valueOf(2), commentCount);
    });
}
 
@Test
public void testHibernateProcedureCallReturnValueParameter() {
    doInJPA(entityManager -> {
        Session session = entityManager.unwrap(Session.class);
        ProcedureCall call = session.createStoredProcedureCall("post_comments");
        call.registerParameter(1, Long.class, ParameterMode.IN).bindValue(1L);

        Output output = call.getOutputs().getCurrent();
        if (output.isResultSet()) {
            List<Object[]> postComments = ((ResultSetOutput) output).getResultList();
            assertEquals(2, postComments.size());
        }
    });
}
 
@Test
public void testProcedureCallParameterDefaultClose() {
    doInJPA(entityManager -> {
        Session session = entityManager.unwrap(Session.class);

        ProcedureCall call = session.createStoredProcedureCall("count_comments");
        call.registerParameter("postId", Long.class, ParameterMode.IN).bindValue(1L);
        call.registerParameter("commentCount", Long.class, ParameterMode.OUT);

        Long commentCount = (Long) call.getOutputs().getOutputParameterValue("commentCount");
        assertEquals(Long.valueOf(2), commentCount);
    });
}
 
源代码10 项目: lams   文件: SessionDelegatorBaseImpl.java
@Override
public ProcedureCall getNamedProcedureCall(String name) {
	return delegate.getNamedProcedureCall( name );
}
 
源代码11 项目: lams   文件: SessionDelegatorBaseImpl.java
@Override
public ProcedureCall createStoredProcedureCall(String procedureName) {
	return delegate.createStoredProcedureCall( procedureName );
}
 
源代码12 项目: lams   文件: SessionDelegatorBaseImpl.java
@Override
public ProcedureCall createStoredProcedureCall(String procedureName, Class... resultClasses) {
	return delegate.createStoredProcedureCall( procedureName, resultClasses );
}
 
源代码13 项目: lams   文件: SessionDelegatorBaseImpl.java
@Override
public ProcedureCall createStoredProcedureCall(String procedureName, String... resultSetMappings) {
	return delegate.createStoredProcedureCall( procedureName, resultSetMappings );
}
 
源代码14 项目: lams   文件: SessionImpl.java
@Override
	public ProcedureCall createStoredProcedureCall(String procedureName) {
		checkOpen();
//		checkTransactionSynchStatus();
		return super.createStoredProcedureCall( procedureName );
	}
 
源代码15 项目: lams   文件: SessionImpl.java
@Override
	public ProcedureCall createStoredProcedureCall(String procedureName, String... resultSetMappings) {
		checkOpen();
//		checkTransactionSynchStatus();
		return super.createStoredProcedureCall( procedureName, resultSetMappings );
	}
 
源代码16 项目: lams   文件: SessionImpl.java
@Override
	public ProcedureCall createStoredProcedureCall(String procedureName, Class... resultClasses) {
		checkOpen();
//		checkTransactionSynchStatus();
		return super.createStoredProcedureCall( procedureName, resultClasses );
	}
 
源代码17 项目: lams   文件: SessionFactoryImpl.java
private void addNamedStoredProcedureQuery(String name, ProcedureCall procedureCall) {
	getNamedQueryRepository().registerNamedProcedureCallMemento(
			name,
			procedureCall.extractMemento( procedureCall.getHints() )
	);
}
 
源代码18 项目: lams   文件: ProcedureCallImpl.java
@Override
@SuppressWarnings("unchecked")
public ProcedureCall registerParameter0(int position, Class type, ParameterMode mode) {
	registerParameter( position, type, mode );
	return this;
}
 
源代码19 项目: lams   文件: ProcedureCallImpl.java
@Override
@SuppressWarnings("unchecked")
public ProcedureCall registerParameter0(String name, Class type, ParameterMode mode) {
	registerParameter( name, type, mode );
	return this;
}
 
源代码20 项目: lams   文件: ProcedureCallMementoImpl.java
@Override
public ProcedureCall makeProcedureCall(SharedSessionContractImplementor session) {
	return new ProcedureCallImpl( session, this );
}
 
@Override
public ProcedureCall getNamedProcedureCall(String name) {
	return target.getNamedProcedureCall(name);
}
 
@Override
public ProcedureCall createStoredProcedureCall(String procedureName) {
	return target.createStoredProcedureCall(procedureName);
}
 
@Override
public ProcedureCall createStoredProcedureCall(String procedureName, @SuppressWarnings("rawtypes") Class... resultClasses) {
	return target.createStoredProcedureCall(procedureName, resultClasses);
}
 
@Override
public ProcedureCall createStoredProcedureCall(String procedureName, String... resultSetMappings) {
	return target.createStoredProcedureCall(procedureName, resultSetMappings);
}
 
源代码25 项目: lams   文件: SharedSessionContract.java
/**
 * Gets a ProcedureCall based on a named template
 *
 * @param name The name given to the template
 *
 * @return The ProcedureCall
 *
 * @see javax.persistence.NamedStoredProcedureQuery
 */
ProcedureCall getNamedProcedureCall(String name);
 
源代码26 项目: lams   文件: SharedSessionContract.java
/**
 * Creates a call to a stored procedure.
 *
 * @param procedureName The name of the procedure.
 *
 * @return The representation of the procedure call.
 */
ProcedureCall createStoredProcedureCall(String procedureName);
 
源代码27 项目: lams   文件: SharedSessionContract.java
/**
 * Creates a call to a stored procedure with specific result set entity mappings.  Each class named
 * is considered a "root return".
 *
 * @param procedureName The name of the procedure.
 * @param resultClasses The entity(s) to map the result on to.
 *
 * @return The representation of the procedure call.
 */
ProcedureCall createStoredProcedureCall(String procedureName, Class... resultClasses);
 
源代码28 项目: lams   文件: SharedSessionContract.java
/**
 * Creates a call to a stored procedure with specific result set entity mappings.
 *
 * @param procedureName The name of the procedure.
 * @param resultSetMappings The explicit result set mapping(s) to use for mapping the results
 *
 * @return The representation of the procedure call.
 */
ProcedureCall createStoredProcedureCall(String procedureName, String... resultSetMappings);
 
 类所在包
 同包方法