private Object[] postUpdateDBState(PostUpdateEvent event) { final Object[] newDbState = event.getState().clone(); if ( event.getOldState() != null ) { final EntityPersister entityPersister = event.getPersister(); for ( int i = 0; i < entityPersister.getPropertyNames().length; ++i ) { if ( !entityPersister.getPropertyUpdateability()[i] ) { // Assuming that PostUpdateEvent#getOldState() returns database state of the record before modification. // Otherwise, we would have to execute SQL query to be sure of @Column(updatable = false) column value. newDbState[i] = event.getOldState()[i]; } } } return newDbState; }
public enum NullabilityCheckType { CREATE, UPDATE, DELETE }
values, types, persister.getPropertyUpdateability(), values, source
final boolean[] propertyUpdateability = persister.getPropertyUpdateability();
values, persister.getPropertyTypes(), persister.getPropertyUpdateability(), values, source
if ( persister.getPropertyUpdateability()[i] ) { dirty[count++] = i;
values, types, subclassPersister.getPropertyUpdateability(), values, session
@Override public boolean[] getPropertyUpdateability() { return persister.getPropertyUpdateability(); }
hydratedState, persister.getPropertyTypes(), persister.getPropertyUpdateability(),
Type[] type = this.ep.getPropertyTypes(); String[] name = this.ep.getPropertyNames(); boolean[] up = this.ep.getPropertyUpdateability();
boolean[] updateable = persister.getPropertyUpdateability(); boolean allNatualIdPropsAreUpdateable = true; for ( int i = 0; i < props.length; i++ ) {
private void checkNaturalId( EntityPersister persister, Serializable identifier, Object[] current, Object[] loaded, EntityMode entityMode, SessionImplementor session) { if ( persister.hasNaturalIdentifier() ) { if ( loaded == null ) { loaded = session.getPersistenceContext().getNaturalIdSnapshot( identifier, persister ); } Type[] types = persister.getPropertyTypes(); int[] props = persister.getNaturalIdentifierProperties(); boolean[] updateable = persister.getPropertyUpdateability(); for ( int i=0; i<props.length; i++ ) { int prop = props[i]; if ( !updateable[prop] ) { if ( !types[prop].isEqual( current[prop], loaded[prop], entityMode ) ) { throw new HibernateException( "immutable natural identifier of an instance of " + persister.getEntityName() + " was altered" ); } } } } }
values, persister.getPropertyTypes(), persister.getPropertyUpdateability(), values, source
values, persister.getPropertyTypes(), persister.getPropertyUpdateability(), values, source
values, types, subclassPersister.getPropertyUpdateability(), values, session
final boolean[] propertyUpdateability = persister.getPropertyUpdateability();
final boolean[] propertyUpdateability = persister.getPropertyUpdateability();
persister.getPropertyUpdateability() : persister.getPropertyInsertability(); final Type[] propertyTypes = persister.getPropertyTypes();
values, persister.getPropertyTypes(), persister.getPropertyUpdateability(), values, source
values, persister.getPropertyTypes(), persister.getPropertyUpdateability(), values, source