From 0551d35babd5fd9374810b87a16c6b4bdeca3920 Mon Sep 17 00:00:00 2001 From: jon ander Date: Thu, 10 Apr 2025 19:13:06 +0200 Subject: [PATCH] Add Producto entity and establish relationships with Categoria, Departamento, and Item; update existing entities to include new relationships --- .../GestionInventario/entities/Categoria.java | 6 +++ .../entities/Departamento.java | 7 ++++ .../GestionInventario/entities/Item.java | 29 ++++++++------ .../GestionInventario/entities/Producto.java | 39 +++++++++++++++++++ .../GestionInventario/entities/Propiedad.java | 5 +++ .../GestionInventario/entities/TipoDato.java | 5 +++ .../GestionInventario/entities/Ubicacion.java | 7 ++++ .../GestionInventario/entities/User.java | 7 ++-- .../GestionInventario/entities/Valor.java | 14 ++++--- 9 files changed, 99 insertions(+), 20 deletions(-) create mode 100644 src/main/java/com/ieslamar/GestionInventario/entities/Producto.java diff --git a/src/main/java/com/ieslamar/GestionInventario/entities/Categoria.java b/src/main/java/com/ieslamar/GestionInventario/entities/Categoria.java index 18952be..8032bbf 100644 --- a/src/main/java/com/ieslamar/GestionInventario/entities/Categoria.java +++ b/src/main/java/com/ieslamar/GestionInventario/entities/Categoria.java @@ -6,6 +6,8 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.List; + @Entity @Table(name = "categoria") @Getter @@ -21,4 +23,8 @@ public class Categoria { @Column(nullable = false) private String nombre; + @OneToMany(mappedBy = "categoria") + private List productos; + + } diff --git a/src/main/java/com/ieslamar/GestionInventario/entities/Departamento.java b/src/main/java/com/ieslamar/GestionInventario/entities/Departamento.java index 117ae9b..2d2990c 100644 --- a/src/main/java/com/ieslamar/GestionInventario/entities/Departamento.java +++ b/src/main/java/com/ieslamar/GestionInventario/entities/Departamento.java @@ -6,6 +6,8 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.List; + @Entity @Table(name = "departamentos") // Nombre de la tabla en MySQL @Getter @@ -21,4 +23,9 @@ public class Departamento { @Column(nullable = false, unique = true) // No se permite usuarios duplicados private String nombre; + @OneToMany(mappedBy = "departamento") + private List productos; + + @OneToMany(mappedBy = "departamento") + private List usuarios; } diff --git a/src/main/java/com/ieslamar/GestionInventario/entities/Item.java b/src/main/java/com/ieslamar/GestionInventario/entities/Item.java index 6ec4613..f8029ee 100644 --- a/src/main/java/com/ieslamar/GestionInventario/entities/Item.java +++ b/src/main/java/com/ieslamar/GestionInventario/entities/Item.java @@ -1,39 +1,44 @@ package com.ieslamar.GestionInventario.entities; - import jakarta.persistence.*; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; import java.util.Date; +import java.util.List; @Entity -@Table(name = "item") +@Table(name = "item") // Nombre de la tabla en MySQL @Getter @Setter @NoArgsConstructor @AllArgsConstructor public class Item { - @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "iditem") - private Long id; + private Integer id; - @Column(name = "fecha_alta") + @Column(name = "fecha_alta",nullable = false) private Date fechaAlta; @Column(name = "fecha_modificacion") private Date fechaModificacion; @ManyToOne - @JoinColumn(name = "users_id") - private User usuario; + @JoinColumn(name = "users_id", nullable = false) + private User user; + + @ManyToOne + @JoinColumn(name = "producto_idproducto") + private Producto producto; @ManyToOne @JoinColumn(name = "ubicacion_idubicacion") private Ubicacion ubicacion; - @ManyToOne - @JoinColumn(name = "producto_idproducto") - private Producto producto; -} + @OneToMany(mappedBy = "item") + private List valores; +} \ No newline at end of file diff --git a/src/main/java/com/ieslamar/GestionInventario/entities/Producto.java b/src/main/java/com/ieslamar/GestionInventario/entities/Producto.java new file mode 100644 index 0000000..1313143 --- /dev/null +++ b/src/main/java/com/ieslamar/GestionInventario/entities/Producto.java @@ -0,0 +1,39 @@ +package com.ieslamar.GestionInventario.entities; + +import jakarta.persistence.*; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.List; + +@Entity +@Table(name = "producto") // Nombre de la tabla en MySQL +@Getter +@Setter +@NoArgsConstructor +@AllArgsConstructor +public class Producto { + @Id + @GeneratedValue(strategy = GenerationType.IDENTITY) + @Column(name = "idproducto") + private Integer id; + + @Column(name = "nombre",nullable = false) + private String nombre; + + @Column + private String descripcion; + + @ManyToOne + @JoinColumn(name = "departamentos_iddepartamentos") + private Departamento departamento; + + @ManyToOne + @JoinColumn(name = "categoria_idcategoria") + private Categoria categoria; + + @OneToMany(mappedBy = "producto") + private List items; +} diff --git a/src/main/java/com/ieslamar/GestionInventario/entities/Propiedad.java b/src/main/java/com/ieslamar/GestionInventario/entities/Propiedad.java index 203f57c..9f90dd0 100644 --- a/src/main/java/com/ieslamar/GestionInventario/entities/Propiedad.java +++ b/src/main/java/com/ieslamar/GestionInventario/entities/Propiedad.java @@ -5,6 +5,8 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.List; + @Entity @Table(name = "propiedad") // Nombre de la tabla en MySQL @Getter @@ -23,4 +25,7 @@ public class Propiedad { @ManyToOne @JoinColumn(name = "tipodato_idtipodato") private TipoDato tipoDato; + + @OneToMany(mappedBy = "priopiedad") + private List valores; } diff --git a/src/main/java/com/ieslamar/GestionInventario/entities/TipoDato.java b/src/main/java/com/ieslamar/GestionInventario/entities/TipoDato.java index ea21af7..4f362bd 100644 --- a/src/main/java/com/ieslamar/GestionInventario/entities/TipoDato.java +++ b/src/main/java/com/ieslamar/GestionInventario/entities/TipoDato.java @@ -6,6 +6,8 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.List; + @Entity @Table(name = "tipodato") @Getter @@ -20,4 +22,7 @@ public class TipoDato { @Column(name = "tipo_dato") private String tipoDato; + + @OneToMany(mappedBy = "tipoDato") + private List propiedades; } diff --git a/src/main/java/com/ieslamar/GestionInventario/entities/Ubicacion.java b/src/main/java/com/ieslamar/GestionInventario/entities/Ubicacion.java index bdc4675..e77317c 100644 --- a/src/main/java/com/ieslamar/GestionInventario/entities/Ubicacion.java +++ b/src/main/java/com/ieslamar/GestionInventario/entities/Ubicacion.java @@ -6,6 +6,9 @@ import lombok.Getter; import lombok.NoArgsConstructor; import lombok.Setter; +import java.util.Collection; +import java.util.List; + @Entity @Table(name = "ubicacion") @Getter @@ -26,4 +29,8 @@ public class Ubicacion { @Column(nullable = true) private String notas; + + @OneToMany(mappedBy = "ubicacion") + private List items; + } diff --git a/src/main/java/com/ieslamar/GestionInventario/entities/User.java b/src/main/java/com/ieslamar/GestionInventario/entities/User.java index ef7b43d..fad806d 100644 --- a/src/main/java/com/ieslamar/GestionInventario/entities/User.java +++ b/src/main/java/com/ieslamar/GestionInventario/entities/User.java @@ -3,6 +3,8 @@ package com.ieslamar.GestionInventario.entities; import jakarta.persistence.*; import lombok.*; +import java.util.List; + @Entity @Table(name = "users") // Nombre de la tabla en MySQL @Getter @@ -27,9 +29,8 @@ public class User { @Column(nullable = false, unique = true) // No se permite emails duplicados private String mail; - @ManyToOne - @JoinColumn(name = "departamentos_iddepartamentos", nullable = true) // Nombre de la columna en la tabla `users` - private Departamento departamento; + @OneToMany(mappedBy = "user") + private List items; } diff --git a/src/main/java/com/ieslamar/GestionInventario/entities/Valor.java b/src/main/java/com/ieslamar/GestionInventario/entities/Valor.java index d551290..98c42e2 100644 --- a/src/main/java/com/ieslamar/GestionInventario/entities/Valor.java +++ b/src/main/java/com/ieslamar/GestionInventario/entities/Valor.java @@ -1,22 +1,26 @@ package com.ieslamar.GestionInventario.entities; import jakarta.persistence.*; -import lombok.*; +import lombok.AllArgsConstructor; +import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.Setter; + +import java.util.Date; @Entity -@Table(name = "valor") +@Table(name = "valor") // Nombre de la tabla en MySQL @Getter @Setter @NoArgsConstructor @AllArgsConstructor public class Valor { - @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "idvalor") - private Long id; + private Integer id; - @Column(nullable = false) + @Column private String valor; @ManyToOne