Spring Boot Entities

Una entidad es la representación de información que nosotros necesitamos en nuestra aplicación.

Esta entidad podría ser un usuario, un producto o cualquier dato que nuestra aplicación necesita mantener persistente para luego recuperarla cuando la necesite.

Que es una entidad para Spring Boot

Una entidad es un objeto, elemento o ‘cosa’ con atributos particulares que lo distinguen. Por ejemplo, este podría ser un ‘user (usuario)’ sobre el que necesitamos conocer sus atributos como el nombre, edad, email, etc.

Entity

Como definir una entidad en Spring Boot

Pensemos en una entidad simple. Por ejemplo, una entidad para guardar los usuarios de una aplicación.

Entity

Presta atención a estos puntos en este ejemplo de entidad:

  • Defines la entidad con la anotación @Entity
  • Es necesario una primary key (PK) (clave primaria) con @ID
  • El valor de esta PK es generada automáticamente con esta anotación @GeneratedValue con el valor AUTO

Hay otras anotaciones que puedes utilizar.

  • @Table para definir explícitamente el nombre de la tabla.
  • @Column para definir el nombre de la columna.

En caso de no usar estas anotaciones (Table, Column), Spring decidirá por convención esos nombres.

Entity

Como usar una entidad en Spring Boot

Spring principalmente usa entidades para reconocer cuales clases representan el modelo de datos. Con esto, Spring puede realizar las acciones habituales sobre la base de datos para la entidad, como insertar, eliminar, buscar, etc.

Probablemente el uso de las entidades es con los repositorios. Por favor, revisa este articulo a fin de entender sobre los repositorios.

Relaciones Una a Muchas One en una entidad

Una entidad podría tener una más de una relación con otra entidad.

Supongamos que tenemos una entidad ‘User’ y la entidad ‘Task’ en nuestra aplicación.

un User puede utilizar ‘una o muchas (one or many)’ Task

Entity Relation

¿Cómo definir una relación ‘one to many’ entre dos entidades?

En la primera entidad tú tienes que crear una ‘lista de Task’ y anotar esta con @OneToMany .

Usando mappedBy indicas que la relación es unidireccional. En otras palabras, un ‘User’ tiene muchas ‘Task’ pero una ‘Task’ no tiene muchos usuarios. Entity-one-to-many

En la segunda entidad tu tienes que crear una referencia a ‘User’ y anotarla con @ManyToOne
@JoinColumn refiere a la columna con la que vamos a relacionar esta table con ‘User’. Entity-many-to-one.png

En resumen:

  • @OneToMany. Define una relación one-to-many (uno a muchos).
  • mappedBy. Indica cuál entidad es dueña del uno a muchos de forma única.
  • @ManyToOne. Usas esto para definir la relación many-to-one (muchos a uno).
  • @JoinColumn. Para determinar la columna que usaremos como clave para lograr la relación con la entidad principal.

Conclusión

Has aprendido como crear entidades y como mapear dos entidades una con otra usando relaciones del tipo one-to-many and many-to-one.

Hi! If you find my posts helpful, please support me by inviting me for a coffee :)

Ver también