Skip to content

Commit

Permalink
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
--wip-- backward compatibility changes for 6.5
Browse files Browse the repository at this point in the history
mbladel committed Dec 20, 2023
1 parent be4c60b commit 9f49776
Showing 25 changed files with 157 additions and 439 deletions.
Original file line number Diff line number Diff line change
@@ -8,11 +8,9 @@

import org.hibernate.AssertionFailure;
import org.hibernate.HibernateException;
import org.hibernate.LockMode;
import org.hibernate.engine.spi.EntityKey;
import org.hibernate.engine.spi.PersistenceContext;
import org.hibernate.engine.spi.SharedSessionContractImplementor;
import org.hibernate.engine.spi.Status;
import org.hibernate.event.service.spi.EventListenerGroup;
import org.hibernate.event.spi.EventSource;
import org.hibernate.event.spi.PostCommitInsertEventListener;
@@ -24,8 +22,6 @@
import org.hibernate.persister.entity.EntityPersister;
import org.hibernate.stat.spi.StatisticsImplementor;

import static org.hibernate.engine.internal.Versioning.getVersion;

/**
* The action for performing entity insertions when entity is using IDENTITY column identifier generation
*
@@ -84,7 +80,7 @@ public void execute() throws HibernateException {
// else inserted the same pk first, the insert would fail

if ( !isVeto() ) {
final GeneratedValues generatedValues = persister.insert( getState(), instance, session );
final GeneratedValues generatedValues = persister.insertReturning( getState(), instance, session );
final PersistenceContext persistenceContext = session.getPersistenceContextInternal();
generatedId = generatedValues.getGeneratedValue( persister.getIdentifierMapping() );
// Process row-id values when available early by replacing the entity entry
Original file line number Diff line number Diff line change
@@ -107,7 +107,7 @@ public void execute() throws HibernateException {
if ( !veto ) {
final EntityPersister persister = getPersister();
final Object instance = getInstance();
final GeneratedValues generatedValues = persister.insert( id, getState(), instance, session );
final GeneratedValues generatedValues = persister.insertReturning( id, getState(), instance, session );
final PersistenceContext persistenceContext = session.getPersistenceContextInternal();
final EntityEntry entry = persistenceContext.getEntry( instance );
if ( entry == null ) {
Original file line number Diff line number Diff line change
@@ -166,7 +166,7 @@ public void execute() throws HibernateException {
final Object instance = getInstance();
final Object previousVersion = getPreviousVersion();
final Object ck = lockCacheItem( previousVersion );
final GeneratedValues generatedValues = persister.update(
final GeneratedValues generatedValues = persister.updateReturning(
id,
state,
dirtyFields,
Original file line number Diff line number Diff line change
@@ -91,7 +91,7 @@ protected void visitReturningColumns(List<ColumnReference> returningColumns) {
// do nothing - this is handled via `#renderReturningClause`
}

@Deprecated( forRemoval = true, since = "7.0" )
@Deprecated( forRemoval = true, since = "6.5" )
public void visitReturningInsertStatement(TableInsertStandard tableInsert) {
assert tableInsert.getReturningColumns() != null
&& !tableInsert.getReturningColumns().isEmpty();

This file was deleted.

This file was deleted.

Original file line number Diff line number Diff line change
@@ -117,7 +117,7 @@ public interface OnExecutionGenerator extends Generator {
* identity columns is the reason why this layer-breaking method exists.
*/
@Incubating
default GeneratedValuesMutationDelegate getGeneratedIdentifierDelegate(PostInsertIdentityPersister persister) {
default InsertGeneratedIdentifierDelegate getGeneratedIdentifierDelegate(PostInsertIdentityPersister persister) {
Dialect dialect = persister.getFactory().getJdbcServices().getDialect();
if ( dialect.supportsInsertReturningGeneratedKeys() ) {
return new GetGeneratedKeysDelegate( persister, dialect, false, EventType.INSERT );
Original file line number Diff line number Diff line change
@@ -79,7 +79,7 @@ public String toString() {
*
* @deprecated Use {@link org.hibernate.generator.values.GeneratedValuesHelper#getGeneratedValues} instead
*/
@Deprecated( since = "7.0", forRemoval = true )
@Deprecated( since = "6.5", forRemoval = true )
public static Object getGeneratedIdentity(
String path,
ResultSet resultSet,
Original file line number Diff line number Diff line change
@@ -13,6 +13,7 @@
import org.hibernate.generator.OnExecutionGenerator;
import org.hibernate.id.insert.BasicSelectingDelegate;
import org.hibernate.id.insert.GetGeneratedKeysDelegate;
import org.hibernate.id.insert.InsertGeneratedIdentifierDelegate;
import org.hibernate.id.insert.InsertReturningDelegate;
import org.hibernate.id.insert.UniqueKeySelectingDelegate;

@@ -51,7 +52,7 @@ public String[] getReferencedColumnValues(Dialect dialect) {
}

@Override
public GeneratedValuesMutationDelegate getGeneratedIdentifierDelegate(PostInsertIdentityPersister persister) {
public InsertGeneratedIdentifierDelegate getGeneratedIdentifierDelegate(PostInsertIdentityPersister persister) {
final Dialect dialect = persister.getFactory().getJdbcServices().getDialect();
if ( persister.getInsertGeneratedProperties().size() > 1 ) {
// If we have more generated attributes other than the identity
Original file line number Diff line number Diff line change
@@ -25,4 +25,27 @@ public interface PostInsertIdentityPersister extends EntityPersister {
String getIdentitySelectString();

String[] getIdentifierColumnNames();

/**
* @deprecated Use {@link EntityPersister#getSelectByUniqueKeyString(String)} instead.
*/
@Override
@Deprecated( since = "6.5" )
String getSelectByUniqueKeyString(String propertyName);

/**
* @deprecated Use {@link EntityPersister#getSelectByUniqueKeyString(String[])} instead.
*/
@Override
@Deprecated( since = "6.5" )
default String getSelectByUniqueKeyString(String[] propertyNames) {
return EntityPersister.super.getSelectByUniqueKeyString( propertyNames );
}

/**
* @deprecated Use {@link EntityPersister#getRootTableKeyColumnNames()} instead.
*/
@Override
@Deprecated( since = "6.5" )
String[] getRootTableKeyColumnNames();
}
Original file line number Diff line number Diff line change
@@ -29,6 +29,13 @@
*/
public abstract class AbstractReturningDelegate extends AbstractGeneratedValuesMutationDelegate
implements InsertGeneratedIdentifierDelegate {
/**
* @deprecated Use {@link #AbstractReturningDelegate(EntityPersister, EventType)} instead.
*/
@Deprecated( forRemoval = true, since = "6.5" )
public AbstractReturningDelegate(EntityPersister persister) {
super( persister, EventType.INSERT );
}

public AbstractReturningDelegate(EntityPersister persister, EventType timing) {
super( persister, timing );
@@ -42,17 +49,17 @@ public GeneratedValues performMutation(
SharedSessionContractImplementor session) {
session.getJdbcServices().getSqlStatementLogger().logStatement( statementDetails.getSqlString() );
valueBindings.beforeStatement( statementDetails );
return executeAndExtract( statementDetails.getSqlString(), statementDetails.getStatement(), session );
return executeAndExtractReturning( statementDetails.getSqlString(), statementDetails.getStatement(), session );
}

@Override
public final GeneratedValues performInsert(String sql, SharedSessionContractImplementor session, Binder binder) {
public final GeneratedValues performInsertReturning(String sql, SharedSessionContractImplementor session, Binder binder) {
try {
// prepare and execute the insert
PreparedStatement insert = prepareStatement( sql, session );
try {
binder.bindValues( insert );
return executeAndExtract( sql, insert, session );
return executeAndExtractReturning( sql, insert, session );
}
finally {
releaseStatement( insert, session );
@@ -67,7 +74,19 @@ public final GeneratedValues performInsert(String sql, SharedSessionContractImpl
}
}

protected abstract GeneratedValues executeAndExtract(
/**
* @deprecated
*/
@Deprecated( forRemoval = true, since = "6.5" )
protected Object executeAndExtract(
String sql,
PreparedStatement preparedStatement,
SharedSessionContractImplementor session) {
final GeneratedValues generatedValues = executeAndExtractReturning( sql, preparedStatement, session );
return generatedValues.getGeneratedValue( persister.getIdentifierMapping() );
}

protected abstract GeneratedValues executeAndExtractReturning(
String sql,
PreparedStatement preparedStatement,
SharedSessionContractImplementor session);
Original file line number Diff line number Diff line change
@@ -34,6 +34,14 @@
*/
public abstract class AbstractSelectingDelegate extends AbstractGeneratedValuesMutationDelegate
implements InsertGeneratedIdentifierDelegate {
/**
* @deprecated Use {@link #AbstractSelectingDelegate(EntityPersister, EventType)} instead.
*/
@Deprecated( forRemoval = true, since = "6.5" )
protected AbstractSelectingDelegate(EntityPersister persister) {
super( persister, EventType.INSERT );
}

protected AbstractSelectingDelegate(EntityPersister persister, EventType timing) {
super( persister, timing );
}
@@ -49,10 +57,20 @@ protected void bindParameters(Object entity, PreparedStatement ps, SharedSession
throws SQLException {
}

/**
* @deprecated No substitute.
*/
@Deprecated( forRemoval = true, since = "6.5" )
protected Object extractGeneratedValues(ResultSet resultSet, SharedSessionContractImplementor session)
throws SQLException {
final GeneratedValues generatedValues = extractReturningValues( resultSet, session );
return generatedValues.getGeneratedValue( persister.getIdentifierMapping() );
}

/**
* Extract the generated key value from the given result set after execution of {@link #getSelectSQL()}.
*/
private GeneratedValues extractGeneratedValues(ResultSet resultSet, SharedSessionContractImplementor session)
private GeneratedValues extractReturningValues(ResultSet resultSet, SharedSessionContractImplementor session)
throws SQLException {
return getGeneratedValues( resultSet, persister, getTiming(), session );
}
@@ -86,7 +104,7 @@ public GeneratedValues performMutation(

final ResultSet resultSet = session.getJdbcCoordinator().getResultSetReturn().extract( idSelect, idSelectSql );
try {
return extractGeneratedValues( resultSet, session );
return extractReturningValues( resultSet, session );
}
catch (SQLException e) {
throw jdbcServices.getSqlExceptionHelper().convert(
@@ -110,7 +128,7 @@ public GeneratedValues performMutation(
}

@Override
public final GeneratedValues performInsert(String sql, SharedSessionContractImplementor session, Binder binder) {
public final GeneratedValues performInsertReturning(String sql, SharedSessionContractImplementor session, Binder binder) {
JdbcCoordinator jdbcCoordinator = session.getJdbcCoordinator();
StatementPreparer statementPreparer = jdbcCoordinator.getStatementPreparer();
try {
@@ -142,7 +160,7 @@ public final GeneratedValues performInsert(String sql, SharedSessionContractImpl
bindParameters( binder.getEntity(), idSelect, session );
ResultSet resultSet = jdbcCoordinator.getResultSetReturn().extract( idSelect, selectSQL );
try {
return extractGeneratedValues( resultSet, session );
return extractReturningValues( resultSet, session );
}
finally {
jdbcCoordinator.getLogicalConnection().getResourceRegistry().release( resultSet, idSelect );
Original file line number Diff line number Diff line change
@@ -186,7 +186,7 @@ public GeneratedValues performMutation(
}

@Override
public GeneratedValues executeAndExtract(
public GeneratedValues executeAndExtractReturning(
String sql,
PreparedStatement preparedStatement,
SharedSessionContractImplementor session) {
Original file line number Diff line number Diff line change
@@ -8,7 +8,6 @@

import java.sql.PreparedStatement;

import org.hibernate.boot.model.relational.SqlStringGenerationContext;
import org.hibernate.engine.jdbc.mutation.JdbcValueBindings;
import org.hibernate.engine.jdbc.mutation.group.PreparedStatementDetails;
import org.hibernate.engine.spi.SessionFactoryImplementor;
@@ -17,6 +16,7 @@
import org.hibernate.generator.values.GeneratedValuesMutationDelegate;
import org.hibernate.jdbc.Expectation;
import org.hibernate.metamodel.mapping.BasicEntityIdentifierMapping;
import org.hibernate.persister.entity.EntityPersister;
import org.hibernate.sql.model.ast.builder.TableInsertBuilder;

/**
@@ -42,14 +42,12 @@
*
* @deprecated Use {@link GeneratedValuesMutationDelegate} instead.
*/
@Deprecated( forRemoval = true, since = "7.0" )
@Deprecated( forRemoval = true, since = "6.5" )
public interface InsertGeneratedIdentifierDelegate extends GeneratedValuesMutationDelegate {
/**
* Create a {@link TableInsertBuilder} with any specific identity
* handling already built in.
* @deprecated Use {@link GeneratedValuesMutationDelegate#createTableMutationBuilder} instead.
*/
@Deprecated( since = "7.0" )
default TableInsertBuilder createTableInsertBuilder(
BasicEntityIdentifierMapping identifierMapping,
Expectation expectation,
@@ -65,16 +63,20 @@ default TableInsertBuilder createTableInsertBuilder(
* primary key value.
*
* @see #createTableInsertBuilder
*
* @deprecated Use {@link GeneratedValuesMutationDelegate#performMutation} instead
*/
@Deprecated( since = "7.0" )
default Object performInsert(
PreparedStatementDetails insertStatementDetails,
JdbcValueBindings valueBindings,
Object entity,
SharedSessionContractImplementor session) {
return performMutation( insertStatementDetails, valueBindings, entity, session );
final EntityPersister entityPersister = session.getEntityPersister( null, entity );
final GeneratedValues generatedValues = performMutation(
insertStatementDetails,
valueBindings,
entity,
session
);
return generatedValues.getGeneratedValue( entityPersister.getIdentifierMapping() );
}

/**
@@ -87,6 +89,22 @@ default String prepareIdentifierGeneratingInsert(String insertSQL) {
return insertSQL;
}

/**
* Execute the given {@code insert} statement and return the generated
* key value.
*
* @param insertSQL The {@code insert} statement string
* @param session The session in which we are operating
* @param binder The parameter binder
*
* @return The generated identifier value
*/
default Object performInsert(String insertSQL, SharedSessionContractImplementor session, Binder binder) {
final EntityPersister entityPersister = session.getEntityPersister( null, binder.getEntity() );
final GeneratedValues generatedValues = performInsertReturning( insertSQL, session, binder );
return generatedValues.getGeneratedValue( entityPersister.getIdentifierMapping() );
}

/**
* Execute the given {@code insert} statement and return the generated
* key value.
@@ -97,5 +115,5 @@ default String prepareIdentifierGeneratingInsert(String insertSQL) {
*
* @return The generated identifier value
*/
GeneratedValues performInsert(String insertSQL, SharedSessionContractImplementor session, Binder binder);
GeneratedValues performInsertReturning(String insertSQL, SharedSessionContractImplementor session, Binder binder);
}
Original file line number Diff line number Diff line change
@@ -59,7 +59,7 @@ public TableMutationBuilder<?> createTableMutationBuilder(
}

@Override
protected GeneratedValues executeAndExtract(
protected GeneratedValues executeAndExtractReturning(
String sql,
PreparedStatement preparedStatement,
SharedSessionContractImplementor session) {
Original file line number Diff line number Diff line change
@@ -21,7 +21,7 @@
* @deprecated This is not used anymore in any of the
* {@link org.hibernate.generator.values.GeneratedValuesMutationDelegate} implementations.
*/
@Deprecated( since = "7.0" )
@Deprecated( since = "6.5" )
public class InsertSelectIdentityInsert extends IdentifierGeneratingInsert {
protected String identityColumnName;

Original file line number Diff line number Diff line change
@@ -41,7 +41,7 @@ public String prepareIdentifierGeneratingInsert(String insertSQL) {
}

@Override
public GeneratedValues executeAndExtract(
public GeneratedValues executeAndExtractReturning(
String sql,
PreparedStatement preparedStatement,
SharedSessionContractImplementor session) {
Original file line number Diff line number Diff line change
@@ -108,10 +108,10 @@ public Object insert(String entityName, Object entity) {
persister.setValues( entity, state );
}
}
persister.insert( id, state, entity, this );
persister.insertReturning( id, state, entity, this );
}
else {
final GeneratedValues generatedValues = persister.insert( state, entity, this );
final GeneratedValues generatedValues = persister.insertReturning( state, entity, this );
id = generatedValues.getGeneratedValue( persister.getIdentifierMapping() );
}
persister.setIdentifier( entity, id, this );
@@ -167,7 +167,7 @@ public void update(String entityName, Object entity) {
else {
oldVersion = null;
}
persister.update( id, state, null, false, null, oldVersion, entity, null, this );
persister.updateReturning( id, state, null, false, null, oldVersion, entity, null, this );
}

@Override
Original file line number Diff line number Diff line change
@@ -2816,7 +2816,7 @@ public String getSelectByUniqueKeyString(String[] propertyNames, String[] column
* Update an object
*/
@Override
public GeneratedValues update(
public GeneratedValues updateReturning(
final Object id,
final Object[] values,
int[] dirtyAttributeIndexes,
@@ -2888,12 +2888,12 @@ public GeneratedValuesMutationDelegate getUpdateDelegate() {
}

@Override
public GeneratedValues insert(Object[] fields, Object object, SharedSessionContractImplementor session) {
public GeneratedValues insertReturning(Object[] fields, Object object, SharedSessionContractImplementor session) {
return insertCoordinator.coordinateInsert( null, fields, object, session );
}

@Override
public GeneratedValues insert(Object id, Object[] fields, Object object, SharedSessionContractImplementor session) {
public GeneratedValues insertReturning(Object id, Object[] fields, Object object, SharedSessionContractImplementor session) {
return insertCoordinator.coordinateInsert( id, fields, object, session );
}

Original file line number Diff line number Diff line change
@@ -628,22 +628,50 @@ default Object loadByUniqueKey(String propertyName, Object uniqueKey, SharedSess
/**
* Persist an instance
*/
GeneratedValues insert(Object id, Object[] fields, Object object, SharedSessionContractImplementor session);
default void insert(Object id, Object[] fields, Object object, SharedSessionContractImplementor session) {
insertReturning( id, fields, object, session );
}

/**
* Persist an instance
*/
GeneratedValues insertReturning(Object id, Object[] fields, Object object, SharedSessionContractImplementor session);

/**
* Persist an instance
*/
default Object insert(Object[] fields, Object object, SharedSessionContractImplementor session) {
final GeneratedValues generatedValues = insertReturning( fields, object, session );
return generatedValues.getGeneratedValue( getIdentifierMapping() );
}

/**
* Persist an instance, using a natively generated identifier (optional operation)
*/
GeneratedValues insert(Object[] fields, Object object, SharedSessionContractImplementor session);
GeneratedValues insertReturning(Object[] fields, Object object, SharedSessionContractImplementor session);

/**
* Delete a persistent instance
*/
void delete(Object id, Object version, Object object, SharedSessionContractImplementor session);

default void update(
Object id,
Object[] fields,
int[] dirtyFields,
boolean hasDirtyCollection,
Object[] oldFields,
Object oldVersion,
Object object,
Object rowId,
SharedSessionContractImplementor session) {
updateReturning( id, fields, dirtyFields, hasDirtyCollection, oldFields, oldVersion, object, rowId, session );
}

/**
* Update a persistent instance
*/
GeneratedValues update(
GeneratedValues updateReturning(
Object id,
Object[] fields,
int[] dirtyFields,
@@ -902,7 +930,7 @@ default Object forceVersionIncrement(
* to the PersistenceContext before calling this method.
* @deprecated Use {@link #processInsertGeneratedProperties(Object, Object, Object[], GeneratedValues, SharedSessionContractImplementor)} instead.
*/
@Deprecated( forRemoval = true, since = "7.0" )
@Deprecated( forRemoval = true, since = "6.5" )
default void processInsertGeneratedProperties(Object id, Object entity, Object[] state, SharedSessionContractImplementor session) {
processInsertGeneratedProperties( id, entity, state, null, session );
}
@@ -945,7 +973,7 @@ default List<? extends ModelPart> getInsertGeneratedProperties() {
* to the PersistenceContext before calling this method.
* @deprecated Use {@link #processUpdateGeneratedProperties(Object, Object, Object[], GeneratedValues, SharedSessionContractImplementor)} instead.
*/
@Deprecated( forRemoval = true, since = "7.0" )
@Deprecated( forRemoval = true, since = "6.5" )
default void processUpdateGeneratedProperties(Object id, Object entity, Object[] state, SharedSessionContractImplementor session) {
processUpdateGeneratedProperties( id, entity, state, null, session );
}
Original file line number Diff line number Diff line change
@@ -53,7 +53,7 @@ public interface EntityMutationTarget extends MutationTarget<EntityTableMapping>
*
* @deprecated use {@link #getInsertDelegate()} instead
*/
@Deprecated( since = "7.0", forRemoval = true )
@Deprecated( since = "6.5", forRemoval = true )
default InsertGeneratedIdentifierDelegate getIdentityInsertDelegate() {
final GeneratedValuesMutationDelegate insertDelegate = getInsertDelegate();
if ( insertDelegate instanceof InsertGeneratedIdentifierDelegate ) {
Original file line number Diff line number Diff line change
@@ -24,12 +24,10 @@
import org.hibernate.engine.spi.SharedSessionContractImplementor;
import org.hibernate.generator.BeforeExecutionGenerator;
import org.hibernate.generator.Generator;
import org.hibernate.generator.OnExecutionGenerator;
import org.hibernate.generator.values.GeneratedValues;
import org.hibernate.generator.values.GeneratedValuesMutationDelegate;
import org.hibernate.id.BulkInsertionCapableIdentifierGenerator;
import org.hibernate.id.OptimizableGenerator;
import org.hibernate.id.PostInsertIdentityPersister;
import org.hibernate.id.enhanced.Optimizer;
import org.hibernate.id.insert.Binder;
import org.hibernate.id.insert.InsertGeneratedIdentifierDelegate;
@@ -555,7 +553,7 @@ private void insertRootTable(
(BasicEntityIdentifierMapping) entityDescriptor.getIdentifierMapping();
final ValueBinder jdbcValueBinder = identifierMapping.getJdbcMapping().getJdbcValueBinder();
for ( Map.Entry<Object, Object> entry : entityTableToRootIdentity.entrySet() ) {
final GeneratedValues generatedValues = identifierDelegate.performInsert(
final GeneratedValues generatedValues = identifierDelegate.performInsertReturning(
finalSql,
session,
new Binder() {
Original file line number Diff line number Diff line change
@@ -403,12 +403,12 @@ public void lock(Object id, Object version, Object object, LockOptions lockOptio
}

@Override
public GeneratedValues insert(Object id, Object[] fields, Object object, SharedSessionContractImplementor session) {
public GeneratedValues insertReturning(Object id, Object[] fields, Object object, SharedSessionContractImplementor session) {
return null;
}

@Override
public GeneratedValues insert(Object[] fields, Object object, SharedSessionContractImplementor session) {
public GeneratedValues insertReturning(Object[] fields, Object object, SharedSessionContractImplementor session) {
return null;
}

@@ -417,7 +417,7 @@ public void delete(Object id, Object version, Object object, SharedSessionContra
}

@Override
public GeneratedValues update(
public GeneratedValues updateReturning(
Object id,
Object[] fields,
int[] dirtyFields,
Original file line number Diff line number Diff line change
@@ -445,12 +445,12 @@ public void lock(Object id, Object version, Object object, LockOptions lockOptio
}

@Override
public GeneratedValues insert(Object id, Object[] fields, Object object, SharedSessionContractImplementor session) {
public GeneratedValues insertReturning(Object id, Object[] fields, Object object, SharedSessionContractImplementor session) {
return null;
}

@Override
public GeneratedValues insert(Object[] fields, Object object, SharedSessionContractImplementor session) {
public GeneratedValues insertReturning(Object[] fields, Object object, SharedSessionContractImplementor session) {
return null;
}

@@ -459,7 +459,7 @@ public void delete(Object id, Object version, Object object, SharedSessionContra
}

@Override
public GeneratedValues update(Object id, Object[] fields, int[] dirtyFields, boolean hasDirtyCollection, Object[] oldFields, Object oldVersion, Object object, Object rowId, SharedSessionContractImplementor session) {
public GeneratedValues updateReturning(Object id, Object[] fields, int[] dirtyFields, boolean hasDirtyCollection, Object[] oldFields, Object oldVersion, Object object, Object rowId, SharedSessionContractImplementor session) {
return null;
}

Original file line number Diff line number Diff line change
@@ -503,7 +503,7 @@ public void lock(
throw new UnsupportedOperationException();
}

public GeneratedValues insert(
public GeneratedValues insertReturning(
Object id,
Object[] fields,
Object object,
@@ -515,7 +515,7 @@ public GeneratedValues insert(
return null;
}

public GeneratedValues insert(Object[] fields, Object object, SharedSessionContractImplementor session)
public GeneratedValues insertReturning(Object[] fields, Object object, SharedSessionContractImplementor session)
throws HibernateException {

throw new UnsupportedOperationException();
@@ -534,7 +534,7 @@ public void delete(
/**
* @see EntityPersister
*/
public GeneratedValues update(
public GeneratedValues updateReturning(
Object id,
Object[] fields,
int[] dirtyFields,

0 comments on commit 9f49776

Please sign in to comment.