/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package com.pepe.jpa.entities;
import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.Lob;
import javax.persistence.ManyToMany;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;
import javax.xml.bind.annotation.XmlTransient;
/**
*
* @author Junior Cabal
*/
@Entity
@Table(name = "actividad")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "Actividad.findAll", query = "SELECT a FROM Actividad a"),
@NamedQuery(name = "Actividad.findByActividadesProyecto", query = "SELECT a FROM Actividad a WHERE a.idProyecto = :idProyecto AND a.idFase = :idFase"),
@NamedQuery(name = "Actividad.findByIdActividad", query = "SELECT a FROM Actividad a WHERE a.idActividad = :idActividad"),
@NamedQuery(name = "Actividad.buscarActividadProyecto", query = "SELECT a FROM Actividad a WHERE a.idProyecto.idProyecto = :idProyecto"),
@NamedQuery(name = "Actividad.buscarActividadProyecto1", query = "SELECT a FROM Actividad a WHERE a.idProyecto.idProyecto = :idProyecto AND a.idFase.idFase = 1"),
@NamedQuery(name = "Actividad.buscarActividadProyecto2", query = "SELECT a FROM Actividad a WHERE a.idProyecto.idProyecto = :idProyecto AND a.idFase.idFase = 2"),
@NamedQuery(name = "Actividad.buscarActividadProyecto3", query = "SELECT a FROM Actividad a WHERE a.idProyecto.idProyecto = :idProyecto AND a.idFase.idFase = 3"),
@NamedQuery(name = "Actividad.buscarActividadProyecto4", query = "SELECT a FROM Actividad a WHERE a.idProyecto.idProyecto = :idProyecto AND a.idFase.idFase = 4"),
@NamedQuery(name = "Actividad.findByDuracion", query = "SELECT a FROM Actividad a WHERE a.duracion = :duracion")})
public class Actividad implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
@Basic(optional = false)
@Column(name = "id_actividad")
private Integer idActividad;
@Basic(optional = false)
@NotNull
@Lob
@Size(min = 1, max = 65535)
@Column(name = "nombre_actividad_proyecto")
private String nombreActividadProyecto;
@Basic(optional = false)
@NotNull
@Column(name = "duracion")
private int duracion;
@JoinTable(name = "recurso_has_actividad_proyecto", joinColumns = {
@JoinColumn(name = "id_actividad_proyecto", referencedColumnName = "id_actividad")}, inverseJoinColumns = {
@JoinColumn(name = "id_recurso", referencedColumnName = "id_recurso")})
@ManyToMany
private List<Recurso> recursoList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idActividad")
private List<ActividadAprendizaje> actividadAprendizajeList;
@JoinColumn(name = "id_fase", referencedColumnName = "id_fase")
@ManyToOne(optional = false)
private Fase idFase;
@JoinColumn(name = "id_proyecto", referencedColumnName = "id_proyecto")
@ManyToOne(optional = false)
private Proyecto idProyecto;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idActividadProyecto")
private List<GuiaAprendizaje> guiaAprendizajeList;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "actividad")
private List<ActividadHasResultadoAprendizaje> actividadHasResultadoAprendizajeList;
public Actividad() {
}
public Actividad(Integer idActividad) {
this.idActividad = idActividad;
}
public Actividad(Integer idActividad, String nombreActividadProyecto, int duracion) {
this.idActividad = idActividad;
this.nombreActividadProyecto = nombreActividadProyecto;
this.duracion = duracion;
}
public Integer getIdActividad() {
return idActividad;
}
public void setIdActividad(Integer idActividad) {
this.idActividad = idActividad;
}
public String getNombreActividadProyecto() {
return nombreActividadProyecto;
}
public void setNombreActividadProyecto(String nombreActividadProyecto) {
this.nombreActividadProyecto = nombreActividadProyecto;
}
public int getDuracion() {
return duracion;
}
public void setDuracion(int duracion) {
this.duracion = duracion;
}
@XmlTransient
public List<Recurso> getRecursoList() {
return recursoList;
}
public void setRecursoList(List<Recurso> recursoList) {
this.recursoList = recursoList;
}
@XmlTransient
public List<ActividadAprendizaje> getActividadAprendizajeList() {
return actividadAprendizajeList;
}
public void setActividadAprendizajeList(List<ActividadAprendizaje> actividadAprendizajeList) {
this.actividadAprendizajeList = actividadAprendizajeList;
}
public Fase getIdFase() {
return idFase;
}
public void setIdFase(Fase idFase) {
this.idFase = idFase;
}
public Proyecto getIdProyecto() {
return idProyecto;
}
public void setIdProyecto(Proyecto idProyecto) {
this.idProyecto = idProyecto;
}
@XmlTransient
public List<GuiaAprendizaje> getGuiaAprendizajeList() {
return guiaAprendizajeList;
}
public void setGuiaAprendizajeList(List<GuiaAprendizaje> guiaAprendizajeList) {
this.guiaAprendizajeList = guiaAprendizajeList;
}
@XmlTransient
public List<ActividadHasResultadoAprendizaje> getActividadHasResultadoAprendizajeList() {
return actividadHasResultadoAprendizajeList;
}
public void setActividadHasResultadoAprendizajeList(List<ActividadHasResultadoAprendizaje> actividadHasResultadoAprendizajeList) {
this.actividadHasResultadoAprendizajeList = actividadHasResultadoAprendizajeList;
}
@Override
public int hashCode() {
int hash = 0;
hash += (idActividad != null ? idActividad.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are not set
if (!(object instanceof Actividad)) {
return false;
}
Actividad other = (Actividad) object;
if ((this.idActividad == null && other.idActividad != null) || (this.idActividad != null && !this.idActividad.equals(other.idActividad))) {
return false;
}
return true;
}
@Override
public String toString() {
return getNombreActividadProyecto();
}
}