org.hibernate.boot.model.source.internal.hbm.AbstractToOneAttributeSourceImpl Maven / Gradle / Ivy
Go to download
Show more of this group Show more artifacts with this name
Show all versions of hibernate-core Show documentation
Show all versions of hibernate-core Show documentation
Hibernate's core ORM functionality
/*
* Hibernate, Relational Persistence for Idiomatic Java
*
* License: GNU Lesser General Public License (LGPL), version 2.1 or later.
* See the lgpl.txt file in the root directory or .
*/
package org.hibernate.boot.model.source.internal.hbm;
import org.hibernate.boot.model.source.spi.AttributeSource;
import org.hibernate.boot.model.source.spi.NaturalIdMutability;
import org.hibernate.boot.model.source.spi.SingularAttributeSourceToOne;
import org.hibernate.tuple.GenerationTiming;
/**
* @author Steve Ebersole
* @author Gail Badner
*/
public abstract class AbstractToOneAttributeSourceImpl
extends AbstractHbmSourceNode
implements SingularAttributeSourceToOne {
private final NaturalIdMutability naturalIdMutability;
AbstractToOneAttributeSourceImpl(
MappingDocument sourceMappingDocument,
NaturalIdMutability naturalIdMutability) {
super( sourceMappingDocument );
this.naturalIdMutability = naturalIdMutability;
}
@Override
public NaturalIdMutability getNaturalIdMutability() {
return naturalIdMutability;
}
@Override
public boolean isSingular() {
return true;
}
@Override
public boolean isVirtualAttribute() {
return false;
}
@Override
public GenerationTiming getGenerationTiming() {
return GenerationTiming.NEVER;
}
@Override
public boolean isIgnoreNotFound() {
return false;
}
@Override
public boolean isMappedBy() {
// only applies to annotations
return false;
}
@Override
public AttributeSource getAttributeSource() {
return this;
}
@Override
public boolean createForeignKeyConstraint() {
// TODO: Can HBM do something like JPA's @ForeignKey(NO_CONSTRAINT)?
return true;
}
}