JPA forma más rápida de ignorar un campo durante la persistencia?

Básicamente busco una anotación de tipo “@Ignore” con la que pueda detener la persistencia de un campo en particular. ¿Cómo se puede lograr esto?

@Transient cumple con sus necesidades.

Para ignorar un campo, @Transient con @Transient para que no sea mapeado por hibernación.

pero luego, jackson no serializará el campo al convertir a JSON.

Si necesita mezclar JPA con JSON (omitir por JPA pero aún incluir en Jackson) use @JsonInclude :

 @JsonInclude() @Transient private String token; 

También puede usar JsonInclude.Include.NON_NULL y ocultar campos en JSON durante la deserialización cuando token == null :

 @JsonInclude(JsonInclude.Include.NON_NULL) @Transient private String token; 

Para ignorar un campo, @Transient con @Transient para que no sea mapeado por hibernación.
Fuente: Anotaciones de Hibernate .

Esta respuesta llega un poco tarde, pero completa la respuesta.

Para evitar que un campo de una entidad persista en DB, uno puede usar uno de los dos mecanismos:

@Transient – la anotación JPA que marca un campo como no persistente

palabra clave transitoria en java. Tenga cuidado: el uso de esta palabra clave evitará que el campo se use con cualquier mecanismo de serialización de Java. Entonces, si el campo debe ser serializado, será mejor que use solo la anotación @Transient .

Para completar las respuestas anteriores, tenía el caso usando un archivo de mapeo XML donde ni el @Transient ni el transient funcionó … Tuve que poner la información transitoria en el archivo xml:

  (...)   

Ninguna de las respuestas anteriores funcionó para mí usando Hibernate 5.2.10, Jersey 2.25.1 y Jackson 2.8.9. Finalmente encontré la respuesta (más o menos, hacen referencia a hibernate4module pero también funciona para 5) aquí . Ninguna de las anotaciones de Json funcionó en absoluto con @Transient . Aparentemente Jackson2 es lo suficientemente “inteligente” como para ignorar las cosas marcadas con @Transient menos que explícitamente le digas que no lo haga. La clave era agregar el módulo hibernate5 (que estaba usando para tratar otras anotaciones de Hibernate) y desactivar la función USE_TRANSIENT_ANNOTATION en mi aplicación de Jersey:

 ObjectMapper jacksonObjectMapper = new ObjectMapper(); Hibernate5Module jacksonHibernateModule = new Hibernate5Module(); jacksonHibernateModule.disable(Hibernate5Module.Feature.USE_TRANSIENT_ANNOTATION); jacksonObjectMapper.registerModule(jacksonHibernateModule); 

Aquí está la dependencia para el Hibernate5Module:

  com.fasterxml.jackson.datatype jackson-datatype-hibernate5 2.8.9