Skip to content
Snippets Groups Projects
Commit b06d8457 authored by JotaJota96's avatar JotaJota96
Browse files

Se agrego etiquetas de persistencia en las clases

parent 5f3caec8
No related branches found
No related tags found
No related merge requests found
Showing
with 322 additions and 26 deletions
annotation.processing.enabled=true annotation.processing.enabled=true
annotation.processing.enabled.in.editor=false annotation.processing.enabled.in.editor=false
annotation.processing.processor.options= annotation.processing.processor.options=-Aeclipselink.canonicalmodel.use_static_factory=false
annotation.processing.processors.list= annotation.processing.processors.list=
annotation.processing.run.all.processors=true annotation.processing.run.all.processors=true
annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output annotation.processing.source.output=${build.generated.sources.dir}/ap-source-output
...@@ -47,7 +47,9 @@ javac.classpath=\ ...@@ -47,7 +47,9 @@ javac.classpath=\
<<<<<<< HEAD:\ <<<<<<< HEAD:\
${file.reference.jcalendar-1.4.jar-3}:\ ${file.reference.jcalendar-1.4.jar-3}:\
${file.reference.jcalendar-1.4.jar-4}:\ ${file.reference.jcalendar-1.4.jar-4}:\
${file.reference.jcalendar-1.4.jar-5} ${file.reference.jcalendar-1.4.jar-5}:\
${libs.PostgreSQLDriver.classpath}:\
${libs.eclipselink.classpath}
<<<<<<< HEAD:\ <<<<<<< HEAD:\
${file.reference.jcalendar-1.4.jar-1} ${file.reference.jcalendar-1.4.jar-1}
${file.reference.jcalendar-1.4.jar}:\ ${file.reference.jcalendar-1.4.jar}:\
...@@ -65,7 +67,8 @@ javac.compilerargs= ...@@ -65,7 +67,8 @@ javac.compilerargs=
javac.deprecation=false javac.deprecation=false
javac.external.vm=true javac.external.vm=true
javac.processorpath=\ javac.processorpath=\
${javac.classpath} ${javac.classpath}:\
${libs.eclipselinkmodelgen.classpath}
javac.source=1.8 javac.source=1.8
javac.target=1.8 javac.target=1.8
javac.test.classpath=\ javac.test.classpath=\
......
package Logica.Clases; package Logica.Clases;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="administrador")
public class Administrador extends Persona{ public class Administrador extends Persona{
private int idAdmin;
private static int contadorAdministrador = 1; private static int contadorAdministrador = 1;
@Id
private int id;
//-------------------------------------------------------------------------
public Administrador() {
super();
}
public Administrador(int id, String contrasenia, String nombre, String apellido){ public Administrador(int id, String contrasenia, String nombre, String apellido){
super(nombre,apellido,contrasenia); super(nombre,apellido,contrasenia);
idAdmin = id; this.id = id;
} }
public static int getNuevoID(){ public static int getNuevoID(){
...@@ -14,9 +28,7 @@ public class Administrador extends Persona{ ...@@ -14,9 +28,7 @@ public class Administrador extends Persona{
} }
public int getIdAdmin() { public int getIdAdmin() {
return idAdmin; return id;
} }
} }
...@@ -10,17 +10,47 @@ import Logica.Enumerados.TipoListaDeReproduccion; ...@@ -10,17 +10,47 @@ import Logica.Enumerados.TipoListaDeReproduccion;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = "canal")
public class Canal { public class Canal {
private static int contadorCanal = 1; private static int contadorCanal = 1;
@Id
@Column(name = "id")
private int id; private int id;
@Column(name = "nombre")
private String nombre; private String nombre;
@Column(name = "descripcion")
private String descripcion; private String descripcion;
@Enumerated(EnumType.STRING)
@Column(name = "privacidad")
private Privacidad privacidad; private Privacidad privacidad;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "id_canal")
private Map<Integer, ListaDeReproduccion> misListas; private Map<Integer, ListaDeReproduccion> misListas;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "id_canal")
private Map<Integer, Video> misVideos; private Map<Integer, Video> misVideos;
//-------------------------------------------------------------------------------------
public Canal() {
}
public Canal(int id, String nombre, String descripcion, Privacidad privacidad) { public Canal(int id, String nombre, String descripcion, Privacidad privacidad) {
if (nombre.equals("")){ if (nombre.equals("")){
throw new RuntimeException("El nombre del canal no puede ser vacio"); throw new RuntimeException("El nombre del canal no puede ser vacio");
......
package Logica.Clases; package Logica.Clases;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name = "categoria")
public class Categoria { public class Categoria {
@Id
@Column(name = "nombre")
private String nombre; private String nombre;
//---------------------------------------------------------------------------
public Categoria() {
}
public Categoria(String nombre) { public Categoria(String nombre) {
if (nombre.equals("")){ if (nombre.equals("")){
throw new RuntimeException("El nombre de la categoria no puede ser vacio"); throw new RuntimeException("El nombre de la categoria no puede ser vacio");
......
...@@ -3,17 +3,47 @@ package Logica.Clases; ...@@ -3,17 +3,47 @@ package Logica.Clases;
import Logica.DataType.DtComentario; import Logica.DataType.DtComentario;
import java.sql.Date; import java.sql.Date;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Entity
@Table(name = "comentario")
public class Comentario { public class Comentario {
private static int contadorComentarios = 1; private static int contadorComentarios = 1;
@Id
@Column(name = "id")
private int id; private int id;
@Basic
@Column(name = "fecha")
private Date fecha; private Date fecha;
@Column(name = "texto")
private String texto; private String texto;
@Column(name = "nivel")
private int nivelSubComentario; private int nivelSubComentario;
@OneToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "nick_usuario")
private Usuario usr; private Usuario usr;
private ArrayList<Comentario> misComentario;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "id_com_padre")
private List<Comentario> misComentario;
//---------------------------------------------------------------------------
public Comentario() {
}
public Comentario(int id, Date fecha, String texto, int nivelSubComentario, Usuario usr) { public Comentario(int id, Date fecha, String texto, int nivelSubComentario, Usuario usr) {
if(usr==null){ if(usr==null){
......
...@@ -8,18 +8,51 @@ import java.util.ArrayList; ...@@ -8,18 +8,51 @@ import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.ManyToMany;
import javax.persistence.Table;
@Entity
@Table(name = "lista_de_reproduccion")
public class ListaDeReproduccion { public class ListaDeReproduccion {
private static int contadorListasDeReproduccion = 1; private static int contadorListasDeReproduccion = 1;
private static ArrayList<String> nombresListasPorDefecto = new ArrayList(Arrays.asList("Ver mas tarde")); private static ArrayList<String> nombresListasPorDefecto = new ArrayList(Arrays.asList("Ver mas tarde"));
@Id
@Column(name = "id")
private int id; private int id;
@Column(name = "nombre")
private String nombre; private String nombre;
@Enumerated(EnumType.STRING)
@Column(name = "privacidad")
private Privacidad privacidad; private Privacidad privacidad;
@Enumerated(EnumType.STRING)
@Column(name = "tipo")
private TipoListaDeReproduccion tipo; private TipoListaDeReproduccion tipo;
@Column(name = "categoria")
private String categoria; private String categoria;
@ManyToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(name = "videos_en_listas",
joinColumns = @JoinColumn(name = "id_lista"),
inverseJoinColumns = @JoinColumn(name = "id_video"))
private Map<Integer, Video> misVideos; private Map<Integer, Video> misVideos;
//-----------------------------------------------------------------------------
public ListaDeReproduccion() {
}
public ListaDeReproduccion(int id, String nombre, Privacidad privacidad, TipoListaDeReproduccion tipo, String categoria) { public ListaDeReproduccion(int id, String nombre, Privacidad privacidad, TipoListaDeReproduccion tipo, String categoria) {
if (nombre.equals("")){ if (nombre.equals("")){
throw new RuntimeException("El nombre de la lista de reproduccion no puede ser vacio"); throw new RuntimeException("El nombre de la lista de reproduccion no puede ser vacio");
......
package Logica.Clases; package Logica.Clases;
public class Persona { import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Inheritance;
import javax.persistence.InheritanceType;
@Entity
@Inheritance(strategy=InheritanceType.TABLE_PER_CLASS)
public abstract class Persona {
@Id
private int id;
@Column(name = "nombre")
private String nombre; private String nombre;
@Column(name = "apellido")
private String apellido; private String apellido;
@Column(name = "contrasenia")
private String contrasenia; private String contrasenia;
//-----------------------------------------------------------------------------
public Persona() {
}
public Persona(String nombre, String apellido, String contrasenia) { public Persona(String nombre, String apellido, String contrasenia) {
if(contrasenia == ""){ if(contrasenia.equals("")){
throw new RuntimeException("La contraseña no puede ser Vacio"); throw new RuntimeException("La contraseña no puede ser Vacio");
} }
this.nombre = nombre; this.nombre = nombre;
......
...@@ -4,18 +4,57 @@ import Logica.DataType.*; ...@@ -4,18 +4,57 @@ import Logica.DataType.*;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.JoinTable;
import javax.persistence.OneToMany;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Entity
@Table(name="usuario")
public class Usuario extends Persona{ public class Usuario extends Persona{
@Id
@Column(name = "nickname")
private String id;
private String nickname; @Column(name = "correo")
private String correo; private String correo;
@Basic
@Column(name = "fecha_nacimiento")
private Date fechaNacimiento; private Date fechaNacimiento;
@Column(name = "imagen")
private String imagen; private String imagen;
@Column(name = "seguidores")
private int seguidores; private int seguidores;
@OneToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "id_canal")
private Canal MiCanal; private Canal MiCanal;
@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(name = "usuarios_seguidores",
joinColumns = @JoinColumn(name = "nick_seguido"),
inverseJoinColumns = @JoinColumn(name = "nick_seguidor"))
private Map<String, Usuario> misSeguidores; private Map<String, Usuario> misSeguidores;
@OneToMany(cascade = {CascadeType.PERSIST, CascadeType.MERGE})
@JoinTable(name = "usuarios_seguidos",
joinColumns = @JoinColumn(name = "nick_seguidor"),
inverseJoinColumns = @JoinColumn(name = "nick_seguido"))
private Map<String, Usuario> seguidos; private Map<String, Usuario> seguidos;
//----------------------------------------------------------------------------------
public Usuario() {
super();
}
public Usuario(String nickname, String correo, Date fechaNacimiento, String imagen, String contrasenia, String nombre, String apellido, DtCanal DTC) { public Usuario(String nickname, String correo, Date fechaNacimiento, String imagen, String contrasenia, String nombre, String apellido, DtCanal DTC) {
super(nombre,apellido,contrasenia); super(nombre,apellido,contrasenia);
...@@ -34,7 +73,7 @@ public class Usuario extends Persona{ ...@@ -34,7 +73,7 @@ public class Usuario extends Persona{
throw new RuntimeException("El correo no puede ser Vacio"); throw new RuntimeException("El correo no puede ser Vacio");
} }
this.nickname = nickname; this.id = nickname;
this.correo = correo; this.correo = correo;
this.fechaNacimiento = fechaNacimiento; this.fechaNacimiento = fechaNacimiento;
this.imagen = imagen; this.imagen = imagen;
...@@ -45,7 +84,7 @@ public class Usuario extends Persona{ ...@@ -45,7 +84,7 @@ public class Usuario extends Persona{
} }
public String getNickname() { public String getNickname() {
return nickname; return id;
} }
public String getCorreo() { public String getCorreo() {
...@@ -65,7 +104,7 @@ public class Usuario extends Persona{ ...@@ -65,7 +104,7 @@ public class Usuario extends Persona{
} }
public DtUsuario getDT(){ public DtUsuario getDT(){
return new DtUsuario(this.nickname, super.getContrasenia(), super.getNombre(), super.getApellido(), this.correo, this.fechaNacimiento, this.imagen, this.seguidores); return new DtUsuario(this.id, super.getContrasenia(), super.getNombre(), super.getApellido(), this.correo, this.fechaNacimiento, this.imagen, this.seguidores);
} }
public void actualizarListasPorDefecto(){ public void actualizarListasPorDefecto(){
...@@ -136,7 +175,7 @@ public class Usuario extends Persona{ ...@@ -136,7 +175,7 @@ public class Usuario extends Persona{
throw new RuntimeException("El usuario no puede ser null"); throw new RuntimeException("El usuario no puede ser null");
} }
if (this.misSeguidores.containsKey(Usu.nickname)){ if (this.misSeguidores.containsKey(Usu.id)){
this.misSeguidores.remove(Usu.getNickname()); this.misSeguidores.remove(Usu.getNickname());
this.seguidores--; this.seguidores--;
}else{ }else{
...@@ -219,7 +258,7 @@ public class Usuario extends Persona{ ...@@ -219,7 +258,7 @@ public class Usuario extends Persona{
if(DtCanal == null){ if(DtCanal == null){
throw new RuntimeException("El canal no puede ser null"); throw new RuntimeException("El canal no puede ser null");
} }
if (this.nickname != DtUsu.getNickname()){ if (this.id != DtUsu.getNickname()){
throw new RuntimeException("El nickname no puede ser modificado"); throw new RuntimeException("El nickname no puede ser modificado");
} }
if (this.correo != DtUsu.getCorreo()){ if (this.correo != DtUsu.getCorreo()){
......
...@@ -2,11 +2,36 @@ package Logica.Clases; ...@@ -2,11 +2,36 @@ package Logica.Clases;
import Logica.DataType.DtValoracion; import Logica.DataType.DtValoracion;
import Logica.Enumerados.TipoValoracion; import Logica.Enumerados.TipoValoracion;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToOne;
import javax.persistence.Table;
@Entity
@Table(name = "valoracion")
public class Valoracion { public class Valoracion {
@Id
@GeneratedValue(strategy=GenerationType.IDENTITY)
private int id;
@Enumerated(EnumType.STRING)
private TipoValoracion val; private TipoValoracion val;
@OneToOne(cascade = CascadeType.PERSIST)
@JoinColumn(name = "nick_usuario")
private Usuario usr; private Usuario usr;
//-----------------------------------------------------------------------
public Valoracion() {
}
public Valoracion(TipoValoracion val, Usuario usr) { public Valoracion(TipoValoracion val, Usuario usr) {
if(usr==null){ if(usr==null){
throw new RuntimeException("Usuario No puede ser null"); throw new RuntimeException("Usuario No puede ser null");
......
...@@ -7,24 +7,71 @@ import java.sql.Date; ...@@ -7,24 +7,71 @@ import java.sql.Date;
import Logica.Enumerados.Privacidad; import Logica.Enumerados.Privacidad;
import Logica.Enumerados.TipoValoracion; import Logica.Enumerados.TipoValoracion;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.TreeMap; import java.util.TreeMap;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.EnumType;
import javax.persistence.Enumerated;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name = "video")
public class Video { public class Video {
private static int idActual = 1;
@Id
@Column(name = "id")
private int id; private int id;
@Column(name = "nombre")
private String nombre; private String nombre;
@Column(name = "descripcion")
private String descripcion; private String descripcion;
@Basic
@Column(name = "duracion")
private Time duracion; private Time duracion;
@Basic
@Column(name = "fecha_publicacion")
private Date fechaPublicacion; private Date fechaPublicacion;
@Column(name = "url")
private String urlVideoOriginal; private String urlVideoOriginal;
@Enumerated(EnumType.STRING)
private Privacidad privacidad = Privacidad.PRIVADO; private Privacidad privacidad = Privacidad.PRIVADO;
@Column(name = "categoria")
private String categoria; private String categoria;
@Column(name = "cant_likes")
private int cantLikes = 0; private int cantLikes = 0;
@Column(name = "cant_dislikes")
private int cantDisLikes = 0; private int cantDisLikes = 0;
private ArrayList<Valoracion> valoraciones;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "id_video")
private List<Valoracion> valoraciones;
@OneToMany(cascade = CascadeType.ALL, orphanRemoval = true)
@JoinColumn(name = "id_video")
private Map<Integer, Comentario> comentarios; private Map<Integer, Comentario> comentarios;
private static int idActual = 1;
//------------------------------------------------------------------------
public Video(){ public Video(){
} }
......
<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.1" xmlns="http://xmlns.jcp.org/xml/ns/persistence" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/persistence http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd">
<persistence-unit name="UyTubePU" transaction-type="RESOURCE_LOCAL">
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
<class>Logica.Clases.Administrador</class>
<class>Logica.Clases.Persona</class>
<class>Logica.Clases.Valoracion</class>
<class>Logica.Clases.Canal</class>
<class>Logica.Clases.Categoria</class>
<class>Logica.Clases.Comentario</class>
<class>Logica.Clases.ListaDeReproduccion</class>
<class>Logica.Clases.Usuario</class>
<class>Logica.Clases.Video</class>
<properties>
<property name="javax.persistence.jdbc.url" value="jdbc:postgresql://localhost:5432/UyTube"/>
<property name="javax.persistence.jdbc.user" value="postgres"/>
<property name="javax.persistence.jdbc.driver" value="org.postgresql.Driver"/>
<property name="javax.persistence.jdbc.password" value="1234"/>
<property name="javax.persistence.schema-generation.database.action" value="create"/>
</properties>
</persistence-unit>
</persistence>
...@@ -8,6 +8,9 @@ import Logica.Enumerados.*; ...@@ -8,6 +8,9 @@ import Logica.Enumerados.*;
import java.sql.Date; import java.sql.Date;
import java.sql.Time; import java.sql.Time;
import java.util.ArrayList; import java.util.ArrayList;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.Persistence;
/** /**
* Esta clase fue hecha para cargar datos de prueba en el sistema * Esta clase fue hecha para cargar datos de prueba en el sistema
* @author Juan * @author Juan
...@@ -23,6 +26,22 @@ public class DatosDePrueba { ...@@ -23,6 +26,22 @@ public class DatosDePrueba {
sys = f.getIAdmin(); sys = f.getIAdmin();
// ahora se puede interactuar con el sistema invocando sus funciones mediante sys // ahora se puede interactuar con el sistema invocando sus funciones mediante sys
EntityManagerFactory factory = null;
EntityManager manager = null;
try {
factory = Persistence.createEntityManagerFactory("UyTubePU");
manager = factory.createEntityManager();
} catch (Exception e) {
System.out.println("//////////////////////////");
System.out.println(e.getMessage());
System.out.println("//////////////////////////");
}
System.exit(0);
/*
cargarCategorias(); cargarCategorias();
cargarUsuariosYCanales(); cargarUsuariosYCanales();
cargarSeguidores(); cargarSeguidores();
...@@ -35,6 +54,7 @@ public class DatosDePrueba { ...@@ -35,6 +54,7 @@ public class DatosDePrueba {
sys.liberarMemoriaVideo(); sys.liberarMemoriaVideo();
sys.liberarMemoriaUsuarioActual(); sys.liberarMemoriaUsuarioActual();
sys.liberarMemoriaUsuario(); sys.liberarMemoriaUsuario();
*/
} }
private static void cargarCategorias(){ private static void cargarCategorias(){
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment