Foros del Web » Programación para mayores de 30 ;) » Java »

[SOLUCIONADO] jsf + ejb bd oracle

Estas en el tema de jsf + ejb bd oracle en el foro de Java en Foros del Web. Buen dia, estoy armando un programa con esta tecnologia (soy nuevo en este tema), y cuando corro la aplicacion en web se demora como 5 ...
  #1 (permalink)  
Antiguo 14/11/2013, 08:01
 
Fecha de Ingreso: septiembre-2013
Mensajes: 22
Antigüedad: 10 años, 7 meses
Puntos: 0
jsf + ejb bd oracle

Buen dia,

estoy armando un programa con esta tecnologia (soy nuevo en este tema), y cuando corro la aplicacion en web se demora como 5 minutos para abrirla, pienso que el problema esta en las ENTITY CLASSES FROM DATABASE pienso que me trae todos los registros de una tabla y la tabla es gigante.

Como puedo mejorar el tiempo de respuesta?
se puede restringir en las entidades el numero de registros por medio de un where ?

por donde puedo empezar a atacar?

Gracias por su apoyo
  #2 (permalink)  
Antiguo 14/11/2013, 10:16
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 15 años
Puntos: 306
Respuesta: jsf + ejb bd oracle

JSF es vista
EJB lógica de negocio

¿Qué usas para base de datos? ¿Cómo recuperas los datos para pensar que estás trayendo todo?

Claro que se puede restingir el número de datos devueltos, pero cómo dependerá de cómo hagas el acceso a base de datos.
__________________
Cada vez que solucionas los problemas de alguien que no se esfuerza, piensa en que el día de mañana puede llegar a ser tu compañero de trabajo, o peor, tu jefe.
  #3 (permalink)  
Antiguo 14/11/2013, 11:00
 
Fecha de Ingreso: septiembre-2013
Mensajes: 22
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: jsf + ejb bd oracle

Gracias Xerelo

pues no se como responder a tu pregunta.....¿Qué usas para base de datos?.....

Me conecto atravez de glasfish y por medio de entity from database, el crea las entidades de las tablas.

Cuando hacia las pruebas de conexion me funcionaba todo bien por que estaba probando con tablas con pocos registros, pero cuando meti la tabla gigante ahi se me revento el tiempo de respuesta.

@Entity
@Table(name = "basedd")
@XmlRootElement
@NamedQueries({
@NamedQuery(name = "basedd.findAll", query = "SELECT l FROM basedd l" ),
@NamedQuery(name = "basedd.findByEpolTipoRegistro", query = "SELECT l FROM based l WHERE l.baseddPK.epolTipoRegistro = :epolTipoRegistro " ),
....

crea un namedquery por cada campo y pueden se millones de registros....entonces son mas de 5 minutos cargando la pagina, trate de modificar estas lineas con where año>=2013 (por ejemplo) o con select top 50 l from basedd pero me genera error, como si estuviera mal escrito.

Gracias por sus ideas.
  #4 (permalink)  
Antiguo 14/11/2013, 14:01
 
Fecha de Ingreso: noviembre-2012
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 7
Respuesta: jsf + ejb bd oracle

Tiene pinta de ser JPA, espero no equivocarme.

Es muy probable que hagas algo como lo siguiente:

Código Java:
Ver original
  1. Query q = entity.createNamedQuery("nombreNamedQuery");
  2. q.getResultList();

Sería añadirle las siguientes líneas:

Código Java:
Ver original
  1. Query q = entity.createNamedQuery("nombreNamedQuery");
  2. q.setFirstResult(0);
  3. q.setMaxResult(50); //Asi te traerías 50 por ejemplo
  4. q.getResultList();

Espero no haberme columpiado diciendo que es JPA jajaaj. Sino hay queda.

Saludos.
  #5 (permalink)  
Antiguo 14/11/2013, 14:13
 
Fecha de Ingreso: septiembre-2013
Mensajes: 22
Antigüedad: 10 años, 7 meses
Puntos: 0
Respuesta: jsf + ejb bd oracle

MarronsDispatcher

Si, la verdad es que lo entendia como Persistence, ahora recuerdo que es Java Persistence API

Gracias por el apoyo, lo probare, gracias
  #6 (permalink)  
Antiguo 14/11/2013, 17:27
 
Fecha de Ingreso: noviembre-2012
Mensajes: 40
Antigüedad: 11 años, 5 meses
Puntos: 7
Ya contaras que tal te fue, en el 95% de los casos añadiendo eso te funcionara. pero JPA en dererminados casos(por la naturaleza de la consulta) no es capaz de hacer el limit, pero eso son casos mas complejos, aunque tiene solucion como todo.

Buena suerte.

Etiquetas: bd, ejb, jsf, oracle, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 18:12.