Árbol de páginas

Esta página servirá como base para enfocar la formación específica de Fudeweb que se impartirá. Rellenad en la tabla qué aspectos específicos de fundeweb créeis que deberían tratarse para ayudar a vuestros grupos



Necesidad formativaProblemática actual detectada
1JPA/HIBERNATE

Problema de la relación OneToMany - ManyToOne que no permite guardar un cambio del objeto.

Se tiene la entidad TfProfesorTutor que tiene una relación 1 a N con TfAsignadoAcuerdoPrevio.

Si mapeo la relación OneToMany - ManyToOne con JPA, cuando intento modificar un atributo de TfProfesorTutor no se persiste en base de datos.

Depurando, veo que cuando hago el find de TfProfesorTutor, pero los valores los trae a null. Esto me resulta extraño, pero hago mi set del campo ‘estado’ y un merge. Nada falla pero no guarda el cambio.

Creo que el problema es que se produce un duplicado de columnas en el mapeo. Por este motivo entiendo que al desplegar se pida que se especifique “insertable = false, updatable = false” en el mapeo y esto entiendo que bloquea la modificación que quiero hacer.


No he conseguido hacer el mapeo de la relación de tal manera que me permita modificar el objeto. Leí algo de MapsId, pero no conseguí poder usarlo.


@Entity

@Table( name = "TF_PROFESOR_TUTOR", schema = "TF" )

public class TfProfesorTutor implements Serializable {

private static final long serialVersionUID = -6736538553848522327L;

private TfProfesorTutorId id;

private Integer nAlumnos;

private String dniCotutor;

private String repetidor;

private String estado;

private String acuerdoPrevio;

private TfOfertaTutor tfOfertaTutor;

// private List<TfAsignadoAcuerdoPrevio> tfAsignadoAcuerdoPrevio = new ArrayList<>();


// @OneToMany( fetch = FetchType.LAZY, mappedBy = "tfProfesorTutor", cascade = CascadeType.ALL, orphanRemoval = true )

// public List<TfAsignadoAcuerdoPrevio> getTfAsignadoAcuerdoPrevio() {

// return tfAsignadoAcuerdoPrevio;

// }

//

// public void setTfAsignadoAcuerdoPrevio( List<TfAsignadoAcuerdoPrevio> tfAsignadoAcuerdoPrevio ) {

// this.tfAsignadoAcuerdoPrevio = tfAsignadoAcuerdoPrevio;

// }


@Entity

@Table( name = "TF_ASIGNADO_ACUERDO_PREVIO", schema = "TF" )

public class TfAsignadoAcuerdoPrevio implements Serializable {

/**

*

*/

private static final long serialVersionUID = -5114043773470350377L;

private TfAsignadoAcuerdoPrevioId id;

private BigDecimal notaMedia;

private String origen;

private String repetidor;

// private TfProfesorTutor tfProfesorTutor;

//

// @ManyToOne( fetch = FetchType.LAZY )

// @JoinColumns( {

// @JoinColumn( name = "COD_OFERTA_TUTOR", referencedColumnName = "COD_OFERTA_TUTOR", insertable = false, updatable =

// false ), @JoinColumn( name = "CURSO_ACA", referencedColumnName = "CURSO_ACA", insertable = false, updatable = false

// ),

// @JoinColumn( name = "COD_CONV", referencedColumnName = "COD_CONV", insertable = false, updatable = false ),

// @JoinColumn( name = "COD_TITU", referencedColumnName = "COD_TITU", insertable = false, updatable = false ),

// @JoinColumn( name = "POSGRADO", referencedColumnName = "POSGRADO", insertable = false, updatable = false ),

// @JoinColumn( name = "DNI_PROFESOR", referencedColumnName = "DNI_PROFESOR", insertable = false, updatable = false )

// } )

// public TfProfesorTutor getTfProfesorTutor() {

// return tfProfesorTutor;

// }

//

// public void setTfProfesorTutor( TfProfesorTutor tfProfesorTutor ) {

// this.tfProfesorTutor = tfProfesorTutor;

// }




2JPA/HIBERNATE - FRONT END

Gestión de entidades con JPA:

  • Las cosas que más problemas me han dado es porque me haría falta saber mejor cómo funciona la gestión de las entidades de bd por debajo y todas las opciones que realmente tenemos, no solo las más básicas que nos enseñan a usar en la formación.
  • También en el frontend he tenido atasques por no entender bien cómo funciona exactamente (por ejemplo, cosas como que la validación no me la está haciendo por el orden en que se ejecutan los checks, no sé bien cómo hacer debug para cosas de eventos en el front, no tengo mucha idea de JavaScript...)





3 

 



  • Sin etiquetas