From b7f6a057f30bf1e7a2f9a159d150a22607a0077d Mon Sep 17 00:00:00 2001 From: Trebellar Date: Mon, 2 Mar 2026 23:26:21 +0100 Subject: [PATCH] Many to Many lado propietario Project --- README.md | 3 +- .../java/com/example/hibernate/model/Emp.java | 126 +++++++++--------- .../com/example/hibernate/model/Project.java | 6 +- 3 files changed, 66 insertions(+), 69 deletions(-) diff --git a/README.md b/README.md index 70e7682..e965481 100644 --- a/README.md +++ b/README.md @@ -7,5 +7,6 @@ Indica no arquivo README.md na raíz do proxecto o comando que utilizaches (0,1 O comando e: mvn clean generate-sources + En el pom.xml -com.example.hibernate.model \ No newline at end of file +com.example.hibernate.model \ No newline at end of file diff --git a/src/main/java/com/example/hibernate/model/Emp.java b/src/main/java/com/example/hibernate/model/Emp.java index 23abcd9..d022886 100644 --- a/src/main/java/com/example/hibernate/model/Emp.java +++ b/src/main/java/com/example/hibernate/model/Emp.java @@ -1,7 +1,6 @@ package com.example.hibernate.model; // Generated 24 feb 2026, 18:01:58 by Hibernate Tools 6.6.0.Final - import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.FetchType; @@ -26,154 +25,149 @@ import java.util.Set; * Emp generated by hbm2java */ @Entity -@Table(name="EMP" -) -public class Emp implements java.io.Serializable { +@Table(name = "EMP") +public class Emp implements java.io.Serializable { - - private Integer empno; - private Emp jefe; - private Dept dept; - private String ename; - private String job; - private LocalDate hiredate; - private BigDecimal sal; - private BigDecimal comm; - private Set accounts = new HashSet(0); - private Set projects = new HashSet(0); - private Set emps = new HashSet(0); + private Integer empno; + private Emp jefe; + private Dept dept; + private String ename; + private String job; + private LocalDate hiredate; + private BigDecimal sal; + private BigDecimal comm; + private Set accounts = new HashSet(0); + private Set projects = new HashSet(0); + private Set emps = new HashSet(0); public Emp() { } - public Emp(Emp jefe, Dept dept, String ename, String job, Date hiredate, BigDecimal sal, BigDecimal comm, Set accounts, Set projects, Set emps) { - this.jefe = jefe; - this.dept = dept; - this.ename = ename; - this.job = job; - this.hiredate = hiredate; - this.sal = sal; - this.comm = comm; - this.accounts = accounts; - this.projects = projects; - this.emps = emps; + public Emp(Emp jefe, Dept dept, String ename, String job, Date hiredate, BigDecimal sal, BigDecimal comm, + Set accounts, Set projects, Set emps) { + this.jefe = jefe; + this.dept = dept; + this.ename = ename; + this.job = job; + this.hiredate = hiredate; + this.sal = sal; + this.comm = comm; + this.accounts = accounts; + this.projects = projects; + this.emps = emps; } - - @Id @GeneratedValue(strategy=IDENTITY) - - @Column(name="EMPNO", unique=true, nullable=false) + @Id + @GeneratedValue(strategy = IDENTITY) + + @Column(name = "EMPNO", unique = true, nullable = false) public Integer getEmpno() { return this.empno; } - + public void setEmpno(Integer empno) { this.empno = empno; } -@ManyToOne(fetch=FetchType.LAZY) - @JoinColumn(name="MGR") + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "MGR") public Emp getJefe() { return this.jefe; } - + public void setJefe(Emp jefe) { this.jefe = jefe; } -@ManyToOne(fetch=FetchType.LAZY) - @JoinColumn(name="DEPTNO") + @ManyToOne(fetch = FetchType.LAZY) + @JoinColumn(name = "DEPTNO") public Dept getDept() { return this.dept; } - + public void setDept(Dept dept) { this.dept = dept; } - - @Column(name="ENAME", length=20) + @Column(name = "ENAME", length = 20) public String getEname() { return this.ename; } - + public void setEname(String ename) { this.ename = ename; } - - @Column(name="JOB", length=20) + @Column(name = "JOB", length = 20) public String getJob() { return this.job; } - + public void setJob(String job) { this.job = job; } // @Temporal(TemporalType.DATE) - @Column(name="HIREDATE", length=10) + @Column(name = "HIREDATE", length = 10) public LocalDate getHiredate() { return this.hiredate; } - + public void setHiredate(LocalDate hiredate) { this.hiredate = hiredate; } - - @Column(name="SAL", precision=15, scale=2) + @Column(name = "SAL", precision = 15, scale = 2) public BigDecimal getSal() { return this.sal; } - + public void setSal(BigDecimal sal) { this.sal = sal; } - - @Column(name="COMM", precision=15, scale=2) + @Column(name = "COMM", precision = 15, scale = 2) public BigDecimal getComm() { return this.comm; } - + public void setComm(BigDecimal comm) { this.comm = comm; } -@OneToMany(fetch=FetchType.LAZY, mappedBy="emp") + @OneToMany(fetch = FetchType.LAZY, mappedBy = "emp") public Set getAccounts() { return this.accounts; } - + public void setAccounts(Set accounts) { this.accounts = accounts; } + // Añadese o atributo mapppedBy co atributo da clase do outro extremo da relación. + @ManyToMany(fetch = FetchType.LAZY, mappedBy = "emps") -@ManyToMany(fetch=FetchType.LAZY) - @JoinTable(name="PROJECT_EMP", catalog="empresa", joinColumns = { - @JoinColumn(name="EMPNO", nullable=false, updatable=false) }, inverseJoinColumns = { - @JoinColumn(name="PROJECTNO", nullable=false, updatable=false) }) + /* + * Eliminamos las JoinTable y JoinCloun por que o lado propietario e Project + * + * @JoinTable(name="PROJECT_EMP", catalog="empresa", joinColumns = { + * @JoinColumn(name="EMPNO", nullable=false) }, inverseJoinColumns = { + * @JoinColumn(name="PROJECTNO", nullable=false) }) + */ public Set getProjects() { return this.projects; } - + public void setProjects(Set projects) { this.projects = projects; } -@OneToMany(fetch=FetchType.LAZY, mappedBy="jefe") + @OneToMany(fetch = FetchType.LAZY, mappedBy = "jefe") public Set getEmps() { return this.emps; } - + public void setEmps(Set emps) { this.emps = emps; } - - - } - - diff --git a/src/main/java/com/example/hibernate/model/Project.java b/src/main/java/com/example/hibernate/model/Project.java index b918254..be34fda 100644 --- a/src/main/java/com/example/hibernate/model/Project.java +++ b/src/main/java/com/example/hibernate/model/Project.java @@ -59,9 +59,11 @@ public class Project implements java.io.Serializable { } @ManyToMany(fetch = FetchType.LAZY) + // Nome da tabela intermedia, nome da base de datos @JoinTable(name = "PROJECT_EMP", catalog = "empresa", joinColumns = { - @JoinColumn(name = "PROJECTNO", nullable = false, updatable = false) }, inverseJoinColumns = { - @JoinColumn(name = "EMPNO", nullable = false, updatable = false) }) + // Nome da columna da tabela intermedia, nome da base de datos + @JoinColumn(name = "PROJECTNO", nullable = false) }, inverseJoinColumns = { + @JoinColumn(name = "EMPNO", nullable = false) }) public Set getEmps() { return this.emps; }