@ Anotación transitoria, @ org.springframework.data.annotation. Anotación transitoria, almacenamiento transitorio de palabras clave y contraseñas

Actualmente estoy aprendiendo el marco de Spring, centrándome principalmente en su módulo de seguridad. He visto algunas guías relacionadas con el registro y el inicio de sesión. Vi este uso común detransitorio palabra clave o@Transitorio anotación en el campo de contraseña en elUsuario clase.

Mi aplicación ficticia está usando Spring Boot + Spring MVC + Spring Security + MySQL.

Yo sé eso

De Javatransitorio La palabra clave se utiliza para indicar que un campo no se debe serializar.

JPA's@ Anotación transitoria...

... especifica que la propiedad oel campo no es persistente. Se utiliza para anotar una propiedad o campo de una clase de entidad, superclase asignada o clase incorporable.

y los org.springframework.data.annotation's@ Anotación transitoria ...

Marca un campo como transitorio para el marco de mapeo. Por lo tanto, lala propiedad no será persistente y no más inspeccionado por el marco de mapeo.

En mi base de datos MySQL tengo mi esquema spring_demo que tiene 3 tablas:

+-----------------------+
| Tables_in_spring_demo |
+-----------------------+
| role                  |
| user                  |
| user_role             |
+-----------------------+

Cuando estoy usando eltransitorio palabra clave en el campo de contraseña en la clase Usuario, no se almacenaría en la base de datos MySQL. (ejemplo: test01)

mysql> select * from user;
+----+--------+------------------+----------+
| id | active | email            | username |
+----+--------+------------------+----------+
|  1 |      1 | [email protected] | test01   |
+----+--------+------------------+----------+
1 row in set (0,00 sec)

Cuando estoy usando eljavax.persistence @Transient Anotación en el campo de contraseña en la clase Usuario, tampoco se almacenaría en la base de datos MySQL. (ejemplo: test02)

Pero ... cuando estoy usando elorg.springframework.data.annotation @Transient anotación en el campo de contraseña en la clase de usuario que almacena en la base de datos MySQL. (ejemplo: test03)¿Porqué es eso?

mysql> select * from user;
+----+--------+------------------+----------+--------------------------------------------------------------+
| id | active | email            | username | password                                                     |
+----+--------+------------------+----------+--------------------------------------------------------------+
|  1 |      1 | [email protected] | test02   |                                                              |
|  2 |      1 | [email protected] | test03   | $2atransitorioUbvmdhfcKxSNr/I4CjOLtOkKGX/j4/xQfFrv3FizxwEVk6D9sAoO  |
+----+--------+------------------+----------+--------------------------------------------------------------+
2 rows in set (0,00 sec)

Mis preguntas principales son, cuando uso la anotación @Transient basada en spring.data, el campo de contraseña ha persistido. ¿Por qué? ¿Y por qué debería usar cualquier anotación @Transient en un campo de contraseña?

¡Gracias por su orientación y ayuda por adelantado!

Respuestas a la pregunta(1)

Su respuesta a la pregunta