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

org.hibernate.annotations.WhereJoinTable 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.annotations;

import java.lang.annotation.Retention;
import java.lang.annotation.Target;

import static java.lang.annotation.ElementType.FIELD;
import static java.lang.annotation.ElementType.METHOD;
import static java.lang.annotation.RetentionPolicy.RUNTIME;

/**
 * Specifies a restriction written in native SQL to add to the generated SQL
 * when querying the {@linkplain jakarta.persistence.JoinTable join table}
 * of a collection.
 * 

* For example, @WhereJoinTable("status <> 'DELETED'") * could be used to hide associations which have been soft-deleted from an * association table. * * @apiNote This separate annotation is useful because it's possible to filter * a many-to-many association both by a restriction on the * join table, and, simultaneously, by a restriction on the * associated entity table. The {@link Where @Where} annotation always * filters entity tables. * * @author Emmanuel Bernard * * @see Where */ @Target({METHOD, FIELD}) @Retention(RUNTIME) public @interface WhereJoinTable { /** * A predicate, written in native SQL. */ String clause(); }





© 2015 - 2024 Weber Informatics LLC | Privacy Policy