/*
 * Hibernate, Relational Persistence for Idiomatic Java
 *
 * Copyright (c) 2008, 2013, Red Hat Inc. or third-party contributors as
 * indicated by the @author tags or express copyright attribution
 * statements applied by the authors.  All third-party contributions are
 * distributed under license by Red Hat Inc.
 *
 * This copyrighted material is made available to anyone wishing to use, modify,
 * copy, or redistribute it subject to the terms and conditions of the GNU
 * Lesser General Public License, as published by the Free Software Foundation.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
 * or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU Lesser General Public License
 * for more details.
 *
 * You should have received a copy of the GNU Lesser General Public License
 * along with this distribution; if not, write to:
 * Free Software Foundation, Inc.
 * 51 Franklin Street, Fifth Floor
 * Boston, MA  02110-1301  USA
 */
package org.hibernate.tuple;

import org.hibernate.engine.spi.IdentifierValue;
import org.hibernate.id.IdentifierGenerator;
import org.hibernate.id.PostInsertIdentifierGenerator;
import org.hibernate.type.Type;

Represents a defined entity identifier property within the Hibernate runtime-metamodel.
Author:Steve Ebersole
/** * Represents a defined entity identifier property within the Hibernate * runtime-metamodel. * * @author Steve Ebersole */
public class IdentifierProperty extends AbstractAttribute implements IdentifierAttribute { private boolean virtual; private boolean embedded; private IdentifierValue unsavedValue; private IdentifierGenerator identifierGenerator; private boolean identifierAssignedByInsert; private boolean hasIdentifierMapper;
Construct a non-virtual identifier property.
Params:
  • name – The name of the property representing the identifier within its owning entity.
  • node – The node name to use for XML-based representation of this property.
  • type – The Hibernate Type for the identifier property.
  • embedded – Is this an embedded identifier.
  • unsavedValue – The value which, if found as the value on the identifier property, represents new (i.e., un-saved) instances of the owning entity.
  • identifierGenerator – The generator to use for id value generation.
/** * Construct a non-virtual identifier property. * * @param name The name of the property representing the identifier within * its owning entity. * @param node The node name to use for XML-based representation of this * property. * @param type The Hibernate Type for the identifier property. * @param embedded Is this an embedded identifier. * @param unsavedValue The value which, if found as the value on the identifier * property, represents new (i.e., un-saved) instances of the owning entity. * @param identifierGenerator The generator to use for id value generation. */
public IdentifierProperty( String name, String node, Type type, boolean embedded, IdentifierValue unsavedValue, IdentifierGenerator identifierGenerator) { super( name, type ); this.virtual = false; this.embedded = embedded; this.hasIdentifierMapper = false; this.unsavedValue = unsavedValue; this.identifierGenerator = identifierGenerator; this.identifierAssignedByInsert = identifierGenerator instanceof PostInsertIdentifierGenerator; }
Construct a virtual IdentifierProperty.
Params:
  • type – The Hibernate Type for the identifier property.
  • embedded – Is this an embedded identifier.
  • unsavedValue – The value which, if found as the value on the identifier property, represents new (i.e., un-saved) instances of the owning entity.
  • identifierGenerator – The generator to use for id value generation.
/** * Construct a virtual IdentifierProperty. * * @param type The Hibernate Type for the identifier property. * @param embedded Is this an embedded identifier. * @param unsavedValue The value which, if found as the value on the identifier * property, represents new (i.e., un-saved) instances of the owning entity. * @param identifierGenerator The generator to use for id value generation. */
public IdentifierProperty( Type type, boolean embedded, boolean hasIdentifierMapper, IdentifierValue unsavedValue, IdentifierGenerator identifierGenerator) { super( null, type ); this.virtual = true; this.embedded = embedded; this.hasIdentifierMapper = hasIdentifierMapper; this.unsavedValue = unsavedValue; this.identifierGenerator = identifierGenerator; this.identifierAssignedByInsert = identifierGenerator instanceof PostInsertIdentifierGenerator; } @Override public boolean isVirtual() { return virtual; } @Override public boolean isEmbedded() { return embedded; } @Override public IdentifierValue getUnsavedValue() { return unsavedValue; } @Override public IdentifierGenerator getIdentifierGenerator() { return identifierGenerator; } @Override public boolean isIdentifierAssignedByInsert() { return identifierAssignedByInsert; } @Override public boolean hasIdentifierMapper() { return hasIdentifierMapper; } @Override public String toString() { return "IdentifierAttribute(" + getName() + ")"; } }