Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Mensajes - Beginner Web

#201
Java / problemas con mapeo de objeto
31 Julio 2019, 02:58 AM
Me salen estos mensajes no se si tenga que ver con mi archivo hibernate.cfg.xml

Código (java) [Seleccionar]
jul 30, 2019 9:01:01 PM org.hibernate.annotations.common.reflection.java.JavaReflectionManager <clinit>
INFO: HCANN000001: Hibernate Commons Annotations {4.0.4.Final}
jul 30, 2019 9:01:01 PM org.hibernate.Version logVersion
INFO: HHH000412: Hibernate Core {4.3.1.Final}
jul 30, 2019 9:01:01 PM org.hibernate.cfg.Environment <clinit>
INFO: HHH000206: hibernate.properties not found
jul 30, 2019 9:01:01 PM org.hibernate.cfg.Environment buildBytecodeProvider
INFO: HHH000021: Bytecode provider name : javassist
jul 30, 2019 9:01:01 PM org.hibernate.cfg.Configuration configure
INFO: HHH000043: Configuring from resource: aplicacion/hibernate/configuracion/hibernate.cfg.xml
jul 30, 2019 9:01:01 PM org.hibernate.cfg.Configuration getConfigurationInputStream
INFO: HHH000040: Configuration resource: aplicacion/hibernate/configuracion/hibernate.cfg.xml
jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity
WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
jul 30, 2019 9:01:01 PM org.hibernate.cfg.Configuration addResource
INFO: HHH000221: Reading mappings from resource: aplicacion/hibernate/mapeos/Mueble.hbm.xml
jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity
WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity
WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.ErrorLogger logErrors
ERROR: HHH000196: Error parsing XML (40) : El contenido del tipo de elemento "class" es incompleto, debe coincidir con "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,fetch-profile*,resultset*,(query|sql-query)*)".
jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.ErrorLogger logErrors
ERROR: HHH000196: Error parsing XML (40) : El contenido del tipo de elemento "hibernate-mapping" debe coincidir con "(meta*,identifier-generator*,typedef*,filter-def*,import*,(class|subclass|joined-subclass|union-subclass)*,resultset*,(query|sql-query)*,filter-def*,fetch-profile*,database-object*)".
jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.DTDEntityResolver resolveEntity
WARN: HHH000223: Recognized obsolete hibernate namespace http://hibernate.sourceforge.net/. Use namespace http://www.hibernate.org/dtd/ instead. Refer to Hibernate 3.6 Migration Guide!
jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.ErrorLogger logErrors
ERROR: HHH000196: Error parsing XML (40) : El contenido del tipo de elemento "class" es incompleto, debe coincidir con "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,fetch-profile*,resultset*,(query|sql-query)*)".
jul 30, 2019 9:01:01 PM org.hibernate.internal.util.xml.ErrorLogger logErrors
ERROR: HHH000196: Error parsing XML (40) : El contenido del tipo de elemento "hibernate-mapping" debe coincidir con "(meta*,identifier-generator*,typedef*,filter-def*,import*,(class|subclass|joined-subclass|union-subclass)*,resultset*,(query|sql-query)*,filter-def*,fetch-profile*,database-object*)".
Initial SessionFactory creation failed.org.hibernate.InvalidMappingException: Unable to read XML
Exception in thread "main" java.lang.ExceptionInInitializerError
at aplicacion.hibernate.util.HibernateUtil.<clinit>(HibernateUtil.java:29)
at aplicacion.hibernate.dao.imp.MuebleDAOImp.create(MuebleDAOImp.java:22)
at aplicacion.cliente.Principal.main(Principal.java:21)
Caused by: org.hibernate.InvalidMappingException: Unable to read XML
at org.hibernate.internal.util.xml.MappingReader.legacyReadMappingDocument(MappingReader.java:375)
at org.hibernate.internal.util.xml.MappingReader.readMappingDocument(MappingReader.java:304)
at org.hibernate.cfg.Configuration.add(Configuration.java:516)
at org.hibernate.cfg.Configuration.add(Configuration.java:512)
at org.hibernate.cfg.Configuration.add(Configuration.java:686)
at org.hibernate.cfg.Configuration.addResource(Configuration.java:769)
at org.hibernate.cfg.AnnotationConfiguration.addResource(AnnotationConfiguration.java:123)
at org.hibernate.cfg.AnnotationConfiguration.addResource(AnnotationConfiguration.java:46)
at org.hibernate.cfg.Configuration.parseMappingElement(Configuration.java:2255)
at org.hibernate.cfg.Configuration.parseSessionFactory(Configuration.java:2227)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2207)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:213)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:46)
at org.hibernate.cfg.Configuration.doConfigure(Configuration.java:2160)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:201)
at org.hibernate.cfg.AnnotationConfiguration.doConfigure(AnnotationConfiguration.java:46)
at org.hibernate.cfg.Configuration.configure(Configuration.java:2075)
at org.hibernate.cfg.AnnotationConfiguration.configure(AnnotationConfiguration.java:183)
at aplicacion.hibernate.util.HibernateUtil.<clinit>(HibernateUtil.java:25)
... 2 more
Caused by: org.xml.sax.SAXParseException; lineNumber: 44; columnNumber: 39; El contenido del tipo de elemento "class" es incompleto, debe coincidir con "(meta*,subselect?,cache?,synchronize*,comment?,tuplizer*,(id|composite-id),discriminator?,natural-id?,(version|timestamp)?,(property|many-to-one|one-to-one|component|dynamic-component|properties|any|map|set|list|bag|idbag|array|primitive-array)*,((join*,subclass*)|joined-subclass*|union-subclass*),loader?,sql-insert?,sql-update?,sql-delete?,filter*,fetch-profile*,resultset*,(query|sql-query)*)".
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.createSAXParseException(ErrorHandlerWrapper.java:203)
at com.sun.org.apache.xerces.internal.util.ErrorHandlerWrapper.error(ErrorHandlerWrapper.java:134)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:396)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:327)
at com.sun.org.apache.xerces.internal.impl.XMLErrorReporter.reportError(XMLErrorReporter.java:284)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.handleEndElement(XMLDTDValidator.java:1994)
at com.sun.org.apache.xerces.internal.impl.dtd.XMLDTDValidator.emptyElement(XMLDTDValidator.java:769)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.scanStartElement(XMLNSDocumentScannerImpl.java:351)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2784)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:602)
at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:112)
at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:505)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:842)
at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:771)
at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141)
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:643)
at org.dom4j.io.SAXReader.read(SAXReader.java:465)
at org.hibernate.internal.util.xml.MappingReader.legacyReadMappingDocument(MappingReader.java:325)
... 20 more
C:\Users\Ana\AppData\Local\NetBeans\Cache\8.2\executor-snippets\run.xml:53: Java returned: 1
BUILD FAILED (total time: 2 seconds)
#202
no,no es eso, solo que no uedo establecer una conexión a una base de datos desde NetBeans en services "New Conecction" o algo asi no se que pasa hace un buen tiempo que no puedo establecer esa conexión pero con código puro de java si puedo

sale eso

Cannot establish a connection to jdbc:mysql://localhost:3308/muebleria?zeroDateTimeBehavior=convertToNull using com.mysql.jdbc.Driver (Unable to load authentication plugin 'caching_sha2_password'.)
#203
Cannot establish a connection to jdbc:mysql://localhost:3306/muebleria?zeroDateTimeBehavior=convertToNull using com.mysql.jdbc.Driver (java.lang.ClassCastException: java.math.BigInteger cannot be cast to java.lang.Long)

bueno ese es el problema
#204
Java / objeto inalcanzable
29 Julio 2019, 07:40 AM
Hola, tengo un problema al hacer el abm de libros, me sale que el objeto libro es inalcanzable y que fue resuelto a nulo, sera porque estoy usando todo los datos de tipo referencia? porque hice uno con puros datos primitivos y no tuve problemas, fijense en la pagina de JSF, la clase y la clase LibroBean creo que ahi tengo los errores pero no se,(SOLO EL BORRADO)  :huh:

Código (html4strict) [Seleccionar]
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
     xmlns:h="http://xmlns.jcp.org/jsf/html"
     xmlns:p="http://primefaces.org/ui">
   <h:head>
       <title>ABM Biblioteca</title>
   </h:head>
   <h:body>
       <h:form id="frmBiblioteca" title="ABM Biblioteca">
           <p:growl id="mensaje"/>
           <p:panel id="pnlOpciones" header="ABM Biblioteca">
               <p:menubar>
                   <p:menuitem value="Agregar Libro"/>
                   <p:menuitem value="Ordenar (A - Z)" actionListener="#{libroBean.ordenarAscendente()}" update="dtLibros"/>
                   <p:menuitem value="Ordenar (Z - A)" actionListener="#{libroBean.ordenarDescendente()}" update="dtLibros" />
                   <p:menuitem value="Buscar Libro"  />
               </p:menubar>
           </p:panel>

           <p:panelGrid id="pgAgrear" columns="2">
               <p:outputLabel id="lblCodigo" value="Código: "/>
               <p:inputNumber id="inpCodigo" value="#{libro.código}"/>
               <p:outputLabel id="lblISBN" value="ISBN: "/>
               <p:inputNumber id="inpISBN" value="#{libro.ISBN}"/>
               <p:outputLabel id="lblTitulo" value="Titulo: "/>
               <p:inputText id="inpTitulo" value="#{libro.titulo}"/>
               <p:outputLabel id="lblPaginas" value="Cantidad Paginas: "/>
               <p:inputNumber id="inpPaginas" value="#{cantPaginas}"/>
               <p:outputLabel id="lblTematica" value="Tematica: "/>
               <p:inputText id="inpTematica" value="#{libro.temática}"/>


               <!--
               private Autor autor;
               private LocalDate fechaEdicion;-->
           </p:panelGrid>

           <p:dataTable id="dtLibros" var="libros" value="#{libroBean.libros}">
               <p:column headerText="Codigo">
                   <h:outputText value="#{libros.código}"/>
               </p:column>
               <p:column headerText="ISBN">
                   <h:outputText value="#{libros.ISBN}"/>
               </p:column>
               <p:column headerText="Titulo">
                   <h:outputText value="#{libros.titulo}"/>
               </p:column>
               <p:column headerText="Cantidad Páginas">
                   <h:outputText value="#{libros.cantPaginas}"/>
               </p:column>
               <p:column headerText="Tematica">
                   <h:outputText value="#{libros.temática}"/>
               </p:column>
               <p:column headerText="Autor">
                   <h:outputText value="#{libros.autor.nombre} #{libros.autor.apellido}"/>
               </p:column>
               <p:column headerText="Fecha publicación">
                   <h:outputText value="#{libros.fechaEdicion.dayOfMonth}/#{libros.fechaEdicion.monthValue}/#{libros.fechaEdicion.year}"/>
               </p:column>
               <p:column headerText="Acción">
                   <p:commandButton id="btnEliminar" value="Eliminar" actionListener="#{libroBean.borrar(libros)}" update="dtLibros"/>
               </p:column>
           </p:dataTable>
       </h:form>
   </h:body>
</html>




Código (java) [Seleccionar]
/*
* 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 apliacion.dao;

import aplicacion.modelo.dominio.Libro;
import java.util.List;

/**
*
* @author Ana Kéldysh
*/
public interface ILibroDAO{
   
   public void agregar(Libro nuevo);
   
   public void borrar(Libro borrado);
   
   public void modificar(Libro modificado);
   
   public void ordenarAscendente();
   
   public void ordenarDescendente();
   
   public List<Libro> buscarLibros(String buscado);
   
   public List<Libro> mostrarLibros();
   
}


Código (java) [Seleccionar]
/*
* 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 aplicacion.controlador.bean;

import apliacion.dao.ILibroDAO;
import aplicacion.dao.imp.ILibroDAOImp;
import aplicacion.modelo.dominio.Libro;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

/**
*
* @author Ana Kéldysh
*/
@ManagedBean
@SessionScoped
public class LibroBean implements Serializable{

   private Libro libro;
   private ILibroDAO libroDAO;
   private List<Libro> libros;

   /**
    * Creates a new instance of LibroBean
    */
   public LibroBean() {
       libroDAO = new ILibroDAOImp();
       libros = new ArrayList<>();
   }

   public void generarLibros() {
       libros = libroDAO.mostrarLibros();
   }

   @PostConstruct
   public void iniciarLibro() {
       libro = new Libro();
       generarLibros();
   }

   public void agregar(Libro nuevo) {
       libroDAO.agregar(nuevo);
   }

   public void borrar(Libro borrado) {
       libroDAO.borrar(borrado);
   }

   public void modificar(Libro modificado) {
       libroDAO.modificar(modificado);
   }

   public void ordenarAscendente() {
       libroDAO.ordenarAscendente();
   }

   public void ordenarDescendente() {
       libroDAO.ordenarDescendente();
   }

   public List<Libro> buscarLibros(String buscado) {
       return libroDAO.buscarLibros(buscado);
   }

   public List<Libro> mostrarLibros() {
       return libroDAO.mostrarLibros();
   }

   public Libro getLibro() {
       return libro;
   }

   public void setLibro(Libro libro) {
       this.libro = libro;
   }

   public ILibroDAO getLibroDAO() {
       return libroDAO;
   }

   public void setLibroDAO(ILibroDAO libroDAO) {
       this.libroDAO = libroDAO;
   }

   @Override
   public String toString() {
       return "LibroBean{" + "libro=" + libro + ", libroDAO=" + libroDAO + ", libros=" + libros + '}';
   }

   public List<Libro> getLibros() {
       return libros;
   }

   public void setLibros(List<Libro> libros) {
       this.libros = libros;
   }

}


Código (java) [Seleccionar]
/*
* 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 aplicacion.controlador.bean;

import apliacion.dao.ILibroDAO;
import aplicacion.dao.imp.ILibroDAOImp;
import aplicacion.modelo.dominio.Autor;
import aplicacion.modelo.dominio.Libro;
import java.time.LocalDate;

/**
*
* @author Ana Kéldysh
*/
public class Test {

   public static void main(String[] args) {

       ILibroDAO lista = new ILibroDAOImp();
       lista.mostrarLibros().forEach((a) -> {
           System.out.println(a.getCódigo());
       });
       System.out.println("Despues de borrar");
       lista.borrar(new Libro(1, 1000, "Java Como Programar", 1000, "Programación", new Autor(), LocalDate.now()));
       lista.mostrarLibros().forEach((a) -> {
           System.out.println(a.getCódigo());
       });
   }
}



Código (java) [Seleccionar]
/*
* 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 aplicacion.dao.imp;

import apliacion.dao.ILibroDAO;
import aplicacion.modelo.dominio.Libro;
import aplicacion.modelo.util.ListaLibros;
import java.io.Serializable;
import java.util.List;

/**
*
* @author Ana Kéldysh
*/
public class ILibroDAOImp implements ILibroDAO, Serializable {

   private ListaLibros libros;

   public ILibroDAOImp() {
       libros = new ListaLibros();
   }

   @Override
   public void agregar(Libro nuevo) {
       libros.agregar(nuevo);
   }

   @Override
   public void borrar(Libro borrado) {
       libros.borrar(borrado);
   }

   @Override
   public void modificar(Libro modificado) {
       libros.modificar(modificado);
   }

   @Override
   public void ordenarAscendente() {
       libros.ordenarAscendente();
   }

   @Override
   public void ordenarDescendente() {
       libros.ordenarDescendente();
   }

   @Override
   public List<Libro> buscarLibros(String buscado) {
       return libros.buscarLibros(buscado);
   }

   @Override
   public List<Libro> mostrarLibros() {
       return libros.getLibros();
   }

}




Código (java) [Seleccionar]
/*
* 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 aplicacion.modelo.dominio;

import java.io.Serializable;

/**
*
* @author Ana Kéldysh
*/
public class Autor implements Serializable {

   private String nombre;
   private String apellido;
   private Integer edad;
   private String nacionalidad;

   public Autor() {
   }

   public Autor(String nombre, String apellido, Integer edad, String nacionalidad) {
       this.nombre = nombre;
       this.apellido = apellido;
       this.edad = edad;
       this.nacionalidad = nacionalidad;
   }

   public String getNacionalidad() {
       return nacionalidad;
   }

   public void setNacionalidad(String nacionalidad) {
       this.nacionalidad = nacionalidad;
   }

   public String getNombre() {
       return nombre;
   }

   public void setNombre(String nombre) {
       this.nombre = nombre;
   }

   public String getApellido() {
       return apellido;
   }

   public void setApellido(String apellido) {
       this.apellido = apellido;
   }

   public Integer getEdad() {
       return edad;
   }

   public void setEdad(Integer edad) {
       this.edad = edad;
   }

   @Override
   public String toString() {
       return "Autor{" + "nombre=" + nombre + ", apellido=" + apellido + ", edad=" + edad + ", nacionalidad=" + nacionalidad + '}';
   }

}




Código (java) [Seleccionar]
/*
* 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 aplicacion.modelo.dominio;

import java.io.Serializable;
import java.time.LocalDate;

/**
*
* @author Ana Kéldysh
*/
public class Libro implements Serializable {

   private Integer código;
   private Integer ISBN;
   private String titulo;
   private Integer cantPaginas;
   private String temática;
   private Autor autor;
   private LocalDate fechaEdicion;

   public Libro() {
   }

   public Libro(Integer código, Integer ISBN, String titulo, Integer cantPaginas, String temática, Autor autor, LocalDate fechaEdicion) {
       this.código = código;
       this.ISBN = ISBN;
       this.titulo = titulo;
       this.cantPaginas = cantPaginas;
       this.temática = temática;
       this.autor = autor;
       this.fechaEdicion = fechaEdicion;
   }

   public Integer getCódigo() {
       return código;
   }

   public void setCódigo(Integer código) {
       this.código = código;
   }

   public Integer getISBN() {
       return ISBN;
   }

   public void setISBN(Integer ISBN) {
       this.ISBN = ISBN;
   }

   public String getTitulo() {
       return titulo;
   }

   public void setTitulo(String titulo) {
       this.titulo = titulo;
   }

   public Integer getCantPaginas() {
       return cantPaginas;
   }

   public void setCantPaginas(Integer cantPaginas) {
       this.cantPaginas = cantPaginas;
   }

   public String getTemática() {
       return temática;
   }

   public void setTemática(String temática) {
       this.temática = temática;
   }

   public Autor getAutor() {
       return autor;
   }

   public void setAutor(Autor autor) {
       this.autor = autor;
   }

   public LocalDate getFechaEdicion() {
       return fechaEdicion;
   }

   public void setFechaEdicion(LocalDate fechaEdicion) {
       this.fechaEdicion = fechaEdicion;
   }

   @Override
   public String toString() {
       return "Libro{" + "c\u00f3digo=" + código + ", ISBN=" + ISBN + ", titulo=" + titulo + ", cantPaginas=" + cantPaginas + ", tem\u00e1tica=" + temática + ", autor=" + autor + ", fechaEdicion=" + fechaEdicion + '}';
   }

}



Código (java) [Seleccionar]
/*
* 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 aplicacion.modelo.util;

import aplicacion.modelo.dominio.Autor;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

/**
*
* @author Ana Kéldysh
*/
public class ListaAutores implements Serializable {

   private List<Autor> autores;

   public ListaAutores() {
       autores = new ArrayList<>();
       autores.add(new Autor("Vanessa", "Navarro", 34, "Argentina"));
       autores.add(new Autor("Ana", "Kéldysh", 15, "Argentina"));
   }

   public List<Autor> getAutores() {
       return autores;
   }

   public void setAutores(List<Autor> autores) {
       this.autores = autores;
   }

   @Override
   public String toString() {
       return "ListaAutores{" + "autores=" + autores + '}';
   }

}



Código (java) [Seleccionar]
/*
* 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 aplicacion.modelo.util;

import aplicacion.modelo.dominio.Libro;
import java.io.Serializable;
import java.time.LocalDate;
import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import javax.faces.application.FacesMessage;
import javax.faces.context.FacesContext;

/**
*
* @author Ana Kéldysh
*/
public class ListaLibros implements Serializable {

   private List<Libro> libros;
   private ListaAutores autores;
   private List<Libro> auxiliar;

   public ListaLibros() {
       libros = new ArrayList<>();
       autores = new ListaAutores();
       auxiliar = new ArrayList<>();
       libros.add(new Libro(1, 1000, "Java Como Programar", 1000, "Programación", autores.getAutores().get(0), LocalDate.now()));
       libros.add(new Libro(2, 2000, "C++", 1000, "Programación", autores.getAutores().get(1), LocalDate.now()));
       libros.add(new Libro(3, 3000, "Python", 1000, "Programación", autores.getAutores().get(1), LocalDate.now()));
   }

   public void agregar(Libro nuevo) {
       libros.add(nuevo);
       FacesContext fc = FacesContext.getCurrentInstance();
       fc.addMessage(null, new FacesMessage("Agregado con exito!!"));
   }

   public void borrar(Libro borrado) {
       boolean encontrado = false;
       for (int i = 0; i < libros.size() && !encontrado; i++) {
           if (libros.get(i).getCódigo().equals(borrado.getCódigo())) {
               libros.remove(i);
               encontrado = true;
           }
       }
       if (encontrado) {
           FacesContext fc = FacesContext.getCurrentInstance();
           fc.addMessage(null, new FacesMessage("Borrado con exito!!"));
       }
   }

   public void modificar(Libro modificado) {
       boolean encontrado = false;
       for (int i = 0; i < libros.size() && !encontrado; i++) {
           if (libros.get(i).getCódigo().equals(modificado.getCódigo())) {
               libros.set(i, modificado);
               encontrado = true;
           }
       }
       if (encontrado) {
           FacesContext fc = FacesContext.getCurrentInstance();
           fc.addMessage(null, new FacesMessage("Modificado con exito!!"));
       }
   }

   public void ordenarAscendente() {
       libros.sort(Comparator.comparing(Libro::getCódigo));
   }

   public void ordenarDescendente() {
       libros.sort(Comparator.comparing(Libro::getCódigo).reversed());
   }

   public List<Libro> buscarLibros(String buscado) {
       auxiliar.clear();
       for (int i = 0; i < libros.size(); i++) {
           if (libros.get(i).getTitulo().startsWith(buscado)) {
               auxiliar.add(libros.get(i));
           }
       }
       return auxiliar;
   }

   public List<Libro> getLibros() {
       auxiliar.clear();
       for (int i = 0; i < libros.size(); i++) {
           auxiliar.add(libros.get(i));
       }
       return auxiliar;
   }

   public void setLibros(List<Libro> libros) {
       this.libros = libros;
   }

   @Override
   public String toString() {
       return "ListaLibros{" + "libros=" + libros + ", autores=" + autores + '}';
   }

   public ListaAutores getAutores() {
       return autores;
   }

   public void setAutores(ListaAutores autores) {
       this.autores = autores;
   }

   public List<Libro> getAuxiliar() {
       return auxiliar;
   }

   public void setAuxiliar(List<Libro> auxiliar) {
       this.auxiliar = auxiliar;
   }

}



#205
Java / me ayudan con los scopes jsf 3.0
26 Julio 2019, 12:11 PM
me ayudan con los scopes del managedbean? request , view seession, etc? quiero ejemplos porfa  ;-)
#206
Java / Re: ordenar lista de Perro(s)
25 Julio 2019, 01:41 AM
gracias bb  :D
#207
Java / ordenar lista de Perro(s)
24 Julio 2019, 08:06 AM
Hola tengo una duda sobre la sintaxis del metodo para ordenar listas segun el un ID unico, quiero ordenarlo de mayor a menor y viceversa no me acuerdo como era algo parecido a lista.sort(compareTo ) y con Lambda afff no recuerdo  :huh:
#208
Hola queria saber porque se dice que los objetos de la clase String son inmutables? Hasta ahora veo que con metodos no se puede modificar un objeto de esa clase, pero al hacer esto veo que se modifica
Código (cpp) [Seleccionar]
String saludo = "Hola";
saludo = "Chau";

Quiere decir que al hacer esta operacion de asignacion estoy creando otro objeto con el mismo nombre? Ayudaaaaaaaaa!!  :laugh:
#209
Hola mas facil es con un combobox(activo/inactivo) y un boton (actualizar, para todo el registro) y ya  ;-)
#210
muchas gracias, con las dos primeras lineas que leí me ha quedado bien claro, era lo que yo sospechaba que pasaba en estas clases, te amo  ;-)