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

org.hibernate.mapping.AttributeContainer Maven / Gradle / Ivy

There is a newer version: 6.6.2.Final
Show newest version
/*
 * 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.mapping;

/**
 * Identifies a mapping model object which may have {@linkplain Property attributes}
 * (fields or properties). Abstracts over {@link PersistentClass} and {@link Join}.
 *
 * @apiNote This model makes sense in {@code hbm.xml} mappings where a
 *          {@code } element may occur as a child of a {@code }.
 *          In annotations, and in {@code orm.xml}, a property cannot be said to
 *          itself belong to a secondary table, instead its columns are mapped to
 *          the table explicitly. In fact, the old {@code hbm.xml} model was more
 *          natural when it came to handling {@code } and especially
 *          {@code } mappings in secondary tables. There was no need to
 *          repetitively write {@code @Column(table="secondary")}. Granted, it does
 *          sound strange to say that a Java property "belongs" to a secondary table.
 *
 * @author Steve Ebersole
 */
public interface AttributeContainer {
	/**
	 * Add a property to this {@link PersistentClass} or {@link Join}.
	 */
	void addProperty(Property property);
	boolean contains(Property property);
	Table getTable();
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy