@Override public void configure(Type type, Properties params, ServiceRegistry serviceRegistry) throws MappingException { super.configure( type, params, serviceRegistry ); }
public Object generatorKey() { return getSequenceName(); }
@Override public Serializable generate(SharedSessionContractImplementor session, Object obj) { return generateHolder( session ).makeValue(); }
public synchronized Serializable generate(SessionImplementor session, Object obj) throws HibernateException { if ( lo>maxLo ) { long hival = ( (Number) super.generate(session, obj) ).longValue(); lo = (hival == 0) ? 1 : 0; hi = hival * ( maxLo+1 ); if ( log.isDebugEnabled() ) log.debug("new hi value: " + hival); } return IdentifierGeneratorFactory.createNumber( hi + lo++, returnClass ); }
protected IntegralDataTypeHolder generateHolder(SharedSessionContractImplementor session) { try { PreparedStatement st = session.getJdbcCoordinator().getStatementPreparer().prepareStatement( sql ); try { ResultSet rs = session.getJdbcCoordinator().getResultSetReturn().extract( st ); try { rs.next(); IntegralDataTypeHolder result = buildHolder(); result.initialize( rs, 1 ); LOG.debugf( "Sequence identifier generated: %s", result ); return result; } finally { session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( rs, st ); } } finally { session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( st ); session.getJdbcCoordinator().afterStatementExecution(); } } catch (SQLException sqle) { throw session.getJdbcServices().getSqlExceptionHelper().convert( sqle, "could not get next sequence value", sql ); } }
public synchronized Serializable generate(SessionImplementor session, Object obj) throws HibernateException { if (maxLo < 1) { //keep the behavior consistent even for boundary usages long val = ( (Number) super.generate(session, obj) ).longValue(); if (val == 0) val = ( (Number) super.generate(session, obj) ).longValue(); return IdentifierGeneratorFactory.createNumber( val, returnClass ); } if ( lo>maxLo ) { long hival = ( (Number) super.generate(session, obj) ).longValue(); lo = (hival == 0) ? 1 : 0; hi = hival * ( maxLo+1 ); if ( log.isDebugEnabled() ) log.debug("new hi value: " + hival); } return IdentifierGeneratorFactory.createNumber( hi + lo++, returnClass ); }
protected IntegralDataTypeHolder generateHolder(SessionImplementor session) { try { PreparedStatement st = session.getTransactionCoordinator().getJdbcCoordinator().getStatementPreparer().prepareStatement( sql ); try { ResultSet rs = st.executeQuery(); try { rs.next(); IntegralDataTypeHolder result = buildHolder(); result.initialize( rs, 1 ); LOG.debugf( "Sequence identifier generated: %s", result ); return result; } finally { rs.close(); } } finally { st.close(); } } catch (SQLException sqle) { throw session.getFactory().getSQLExceptionHelper().convert( sqle, "could not get next sequence value", sql ); } }
@Override public void configure(Type type, Properties params, ServiceRegistry serviceRegistry) throws MappingException { super.configure( type, params, serviceRegistry ); maxLo = ConfigurationHelper.getInt( MAX_LO, params, 9 ); if ( maxLo >= 1 ) { hiloOptimizer = new LegacyHiLoAlgorithmOptimizer( getIdentifierType().getReturnedClass(), maxLo ); } }
@Override public String determineBulkInsertionIdentifierGenerationSelectFragment(Dialect dialect) { return dialect.getSelectSequenceNextValString( getSequenceName() ); }
@Override public synchronized Serializable generate(final SharedSessionContractImplementor session, Object obj) { // maxLo < 1 indicates a hilo generator with no hilo :? if ( maxLo < 1 ) { //keep the behavior consistent even for boundary usages IntegralDataTypeHolder value = null; while ( value == null || value.lt( 0 ) ) { value = super.generateHolder( session ); } return value.makeValue(); } return hiloOptimizer.generate( new AccessCallback() { @Override public IntegralDataTypeHolder getNextValue() { return generateHolder( session ); } @Override public String getTenantIdentifier() { return session.getTenantIdentifier(); } } ); }
/** * The ID is the concatenation of the prefix and a sequence provided by the database, separated * by a dash. * * @param sessionImplementor a hibernate session implementor * @param object the object being persisted * * @return the new generated ID * * @throws HibernateException if something goes wrong */ @Override public Serializable generate( SessionImplementor sessionImplementor, Object object ) throws HibernateException { String prefix = IntactContext.getCurrentInstance().getConfig().getAcPrefix(); String id = prefix + "-" + super.generate( sessionImplementor, object ); log.trace( "Assigning Id: " + id ); return id; }
protected IntegralDataTypeHolder generateHolder(SessionImplementor session) { try { PreparedStatement st = session.getTransactionCoordinator().getJdbcCoordinator().getStatementPreparer().prepareStatement( sql ); try { ResultSet rs = st.executeQuery(); try { rs.next(); IntegralDataTypeHolder result = buildHolder(); result.initialize( rs, 1 ); LOG.debugf( "Sequence identifier generated: %s", result ); return result; } finally { rs.close(); } } finally { st.close(); } } catch (SQLException sqle) { throw session.getFactory().getSQLExceptionHelper().convert( sqle, "could not get next sequence value", sql ); } }
@Override public void configure(Type type, Properties params, Dialect dialect) throws MappingException { super.configure( type, params, dialect ); }
public Object generatorKey() { return getSequenceName(); }
@Override public Object generate(SharedSessionContractImplementor session, Object obj) { return generateHolder( session ).makeValue(); }
/** * The ID is the concatenation of the prefix and a sequence provided by the database, separated * by a dash. * * @param sessionImplementor a hibernate session implementor * @param object the object being persisted * * @return the new generated ID * * @throws HibernateException if something goes wrong */ @Override public Serializable generate( SessionImplementor sessionImplementor, Object object ) throws HibernateException { String prefix; if (IntactContext.currentInstanceExists()) { prefix = IntactContext.getCurrentInstance().getConfig().getAcPrefix(); } else { prefix = "UNK"; } String id = prefix + "-" + super.generate( sessionImplementor, object ); log.trace( "Assigning Id: " + id ); return id; }
protected IntegralDataTypeHolder generateHolder(SharedSessionContractImplementor session) { try { PreparedStatement st = session.getJdbcCoordinator().getStatementPreparer().prepareStatement( sql ); try { ResultSet rs = session.getJdbcCoordinator().getResultSetReturn().extract( st ); try { rs.next(); IntegralDataTypeHolder result = buildHolder(); result.initialize( rs, 1 ); LOG.debugf( "Sequence identifier generated: %s", result ); return result; } finally { session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( rs, st ); } } finally { session.getJdbcCoordinator().getLogicalConnection().getResourceRegistry().release( st ); session.getJdbcCoordinator().afterStatementExecution(); } } catch (SQLException sqle) { throw session.getJdbcServices().getSqlExceptionHelper().convert( sqle, "could not get next sequence value", sql ); } }
@Override public void configure(Type type, Properties params, Dialect dialect) throws MappingException { super.configure( type, params, dialect ); }
public Object generatorKey() { return getSequenceName(); }
@Override public Serializable generate(SessionImplementor session, Object obj) { return generateHolder( session ).makeValue(); }