All Downloads are FREE. Search and download functionalities are using the official Maven repository.

org.hibernate.action.DelayedPostInsertIdentifier Maven / Gradle / Ivy

There is a newer version: 3.6.0.Beta2
Show newest version
package org.hibernate.action;

import java.io.Serializable;

/**
 * Acts as a stand-in for an entity identifier which is supposed to be
 * generated on insert (like an IDENTITY column) where the insert needed to
 * be delayed because we were outside a transaction when the persist
 * occurred (save currently still performs the insert).
 * 

* The stand-in is only used within the {@link org.hibernate.engine.PersistenceContext} * in order to distinguish one instance from another; it is never injected into * the entity instance or returned to the client... * * @author Steve Ebersole */ public class DelayedPostInsertIdentifier implements Serializable { private static long SEQUENCE = 0; private final long sequence; public DelayedPostInsertIdentifier() { synchronized( DelayedPostInsertIdentifier.class ) { if ( SEQUENCE == Long.MAX_VALUE ) { SEQUENCE = 0; } this.sequence = SEQUENCE++; } } public boolean equals(Object o) { if ( this == o ) { return true; } if ( o == null || getClass() != o.getClass() ) { return false; } final DelayedPostInsertIdentifier that = ( DelayedPostInsertIdentifier ) o; return sequence == that.sequence; } public int hashCode() { return ( int ) ( sequence ^ ( sequence >>> 32 ) ); } public String toString() { return ""; } }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy