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

org.hibernate.annotations.Immutable Maven / Gradle / Ivy

There is a newer version: 7.0.0.Alpha1
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.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;

/**
 * Mark an Entity, a Collection, or an Attribute type as immutable. No annotation means the element is mutable.
 * 

* An immutable entity may not be updated by the application. Updates to an immutable * entity will be ignored, but no exception is thrown. @Immutable must be used on root entities only. *

*

* @Immutable placed on a collection makes the collection immutable, meaning additions and * deletions to and from the collection are not allowed. A HibernateException is thrown in this case. *

*

* An immutable attribute type will not be copied in the currently running Persistence Context in order to detect if the underlying value is dirty. As a result loading the entity will require less memory * and checking changes will be much faster. *

* * @author Emmanuel Bernard */ @java.lang.annotation.Target({ElementType.TYPE, ElementType.METHOD, ElementType.FIELD}) @Retention( RetentionPolicy.RUNTIME ) public @interface Immutable { }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy