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

Problema struts2 hibernate OneToMany

Estas en el tema de Problema struts2 hibernate OneToMany en el foro de Java en Foros del Web. Hola! Tengo una base de datos con dos tablas, las cuales están relacionadas por uno de sus campos y la relación es de tipo OneToMany. ...
  #1 (permalink)  
Antiguo 03/07/2011, 10:20
 
Fecha de Ingreso: julio-2011
Mensajes: 9
Antigüedad: 12 años, 9 meses
Puntos: 0
Problema struts2 hibernate OneToMany

Hola!

Tengo una base de datos con dos tablas, las cuales están relacionadas por uno de sus campos y la relación es de tipo OneToMany. Estoy usando hibernate con anotaciones y primero probé a mapear una sola tabla.

EL fichero hibernate.cfg.xml para una sola tabla es
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD 3.0//EN"
"http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.driver_class">com.mysql.jdbc.Driv er</property>
<property name="connection.url">jdbc:mysql://localhost:3306/usuarios</property>
<property name="connection.username">veronica</property>
<property name="connection.password">vero2108</property>
<property name="connection.pool_size">1</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="current_session_context_class">thread</property>
<property name="cache.provider_class">org.hibernate.cache.No CacheProvider</property>
<property name="show_sql">true</property>
<property name="hbm2ddl.auto">update</property>
<mapping class="tables.User"/>
</session-factory>
</hibernate-configuration>

Para mapear la segunda tabla, creo la clase Java exactamente igual que para la primera tabla y añado:

<mapping class="tables.ComputeEngine" />

más @OneToMany, @ManyToOne y @JoinColumn en las clases.

Obtengo la siguiente excepción:

java.lang.NullPointerException
actions.LoginAction.execute(LoginAction.java:34)
sun.reflect.NativeMethodAccessorImpl.invoke0(Nativ e Method)
sun.reflect.NativeMethodAccessorImpl.invoke(Unknow n Source)
sun.reflect.DelegatingMethodAccessorImpl.invoke(Un known Source)
java.lang.reflect.Method.invoke(Unknown Source)
com.opensymphony.xwork2.DefaultActionInvocation.in vokeAction(DefaultActionInvocation.java:452)
com.opensymphony.xwork2.DefaultActionInvocation.in vokeActionOnly(DefaultActionInvocation.java:291)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:254)
com.opensymphony.xwork2.interceptor.DefaultWorkflo wInterceptor.doIntercept(DefaultWorkflowIntercepto r.java:176)
com.opensymphony.xwork2.interceptor.MethodFilterIn terceptor.intercept(MethodFilterInterceptor.java:9 8)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.validator.ValidationInterc eptor.doIntercept(ValidationInterceptor.java:263)
org.apache.struts2.interceptor.validation.Annotati onValidationInterceptor.doIntercept(AnnotationVali dationInterceptor.java:68)
com.opensymphony.xwork2.interceptor.MethodFilterIn terceptor.intercept(MethodFilterInterceptor.java:9 8)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ConversionErro rInterceptor.intercept(ConversionErrorInterceptor. java:133)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInte rceptor.doIntercept(ParametersInterceptor.java:207 )
com.opensymphony.xwork2.interceptor.MethodFilterIn terceptor.intercept(MethodFilterInterceptor.java:9 8)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ParametersInte rceptor.doIntercept(ParametersInterceptor.java:207 )
com.opensymphony.xwork2.interceptor.MethodFilterIn terceptor.intercept(MethodFilterInterceptor.java:9 8)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.StaticParamete rsInterceptor.intercept(StaticParametersIntercepto r.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.MultiselectIntercep tor.intercept(MultiselectInterceptor.java:75)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.CheckboxInterceptor .intercept(CheckboxInterceptor.java:94)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.FileUploadIntercept or.intercept(FileUploadInterceptor.java:243)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ModelDrivenInt erceptor.intercept(ModelDrivenInterceptor.java:100 )
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ScopedModelDri venInterceptor.intercept(ScopedModelDrivenIntercep tor.java:141)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.debugging.Debugging Interceptor.intercept(DebuggingInterceptor.java:26 7)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ChainingInterc eptor.intercept(ChainingInterceptor.java:142)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.PrepareInterce ptor.doIntercept(PrepareInterceptor.java:166)
com.opensymphony.xwork2.interceptor.MethodFilterIn terceptor.intercept(MethodFilterInterceptor.java:9 8)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.I18nIntercepto r.intercept(I18nInterceptor.java:176)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
org.apache.struts2.interceptor.ServletConfigInterc eptor.intercept(ServletConfigInterceptor.java:164)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.AliasIntercept or.intercept(AliasInterceptor.java:190)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
com.opensymphony.xwork2.interceptor.ExceptionMappi ngInterceptor.intercept(ExceptionMappingIntercepto r.java:187)
com.opensymphony.xwork2.DefaultActionInvocation.in voke(DefaultActionInvocation.java:248)
org.apache.struts2.impl.StrutsActionProxy.execute( StrutsActionProxy.java:52)
org.apache.struts2.dispatcher.Dispatcher.serviceAc tion(Dispatcher.java:485)
org.apache.struts2.dispatcher.ng.ExecuteOperations .executeAction(ExecuteOperations.java:77)
org.apache.struts2.dispatcher.ng.filter.StrutsPrep areAndExecuteFilter.doFilter(StrutsPrepareAndExecu teFilter.java:91)


¿Alguna idea?
  #2 (permalink)  
Antiguo 03/07/2011, 12:19
Avatar de Xerelo  
Fecha de Ingreso: mayo-2009
Mensajes: 2.175
Antigüedad: 14 años, 11 meses
Puntos: 306
Respuesta: Problema struts2 hibernate OneToMany

Cita:
actions.LoginAction.execute(LoginAction.java:34)
¿Qué llamada haces? Ten en cuenta que un nullpointer suele ser más por fallo de programación que de configuración.
__________________
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 07/07/2011, 01:53
 
Fecha de Ingreso: julio-2011
Mensajes: 9
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema struts2 hibernate OneToMany

Hola!
Perdón, no vi que me habían contestado!

Pues mi Listener es el siguiente:

public class HibernateListener implements ServletContextListener{

private Configuration config;
private SessionFactory factory;
private String path = "/hibernate.cfg.xml";
private static Class clazz = HibernateListener.class;

public static final String KEY_NAME = clazz.getName();

public void contextDestroyed(ServletContextEvent event) {
//
}

public void contextInitialized(ServletContextEvent event) {

try {
URL url = HibernateListener.class.getResource(path);
config = new AnnotationConfiguration().configure(url);
factory = config.buildSessionFactory();

//save the Hibernate session factory into serlvet context
event.getServletContext().setAttribute(KEY_NAME, factory);
} catch (Exception e) {
System.out.println(e.getMessage());
}
}

}


Y la llamada desde el LoginAction es:
SessionFactory sessionFactory =
(SessionFactory) ServletActionContext.getServletContext()
.getAttribute(HibernateListener.KEY_NAME);

Session session = sessionFactory.openSession();
userList = session.createQuery("from usuarios").list();

La excepción sale en el sessionFactory pero cuando solo mapeo una tabla, funciona correctamente....
Muchas gracias!!
  #4 (permalink)  
Antiguo 07/07/2011, 02:29
 
Fecha de Ingreso: diciembre-2010
Mensajes: 459
Antigüedad: 13 años, 4 meses
Puntos: 21
Respuesta: Problema struts2 hibernate OneToMany

Probablemente tu error este en el hibernate.cfg.xml cuando haces el mapeo de onetomany, podrias poner el codigo para verlo

Saludos
  #5 (permalink)  
Antiguo 07/07/2011, 03:45
 
Fecha de Ingreso: julio-2011
Mensajes: 9
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema struts2 hibernate OneToMany

Al agregar la segunda tabla, en hibernate.cfg.xml solo añado esto:

<mapping class="tables.ComputeEngine" />

No pongo nada de OneToMany en ese archivo... ¿Qué debería poner ahí?
  #6 (permalink)  
Antiguo 07/07/2011, 04:38
 
Fecha de Ingreso: diciembre-2010
Mensajes: 459
Antigüedad: 13 años, 4 meses
Puntos: 21
Respuesta: Problema struts2 hibernate OneToMany

Mirate este tutorial de hibernate con anotaciones de uno a muchos creo q te servira mucho

http://www.javatutoriales.com/2009/0...no-muchos.html

Saludos
  #7 (permalink)  
Antiguo 09/07/2011, 08:22
 
Fecha de Ingreso: julio-2011
Mensajes: 9
Antigüedad: 12 años, 9 meses
Puntos: 0
Respuesta: Problema struts2 hibernate OneToMany

Muchas gracias!!!
Me ha encantado ese tutorial!! Ya lo tengo funcionando. Muchas gracias!
  #8 (permalink)  
Antiguo 11/07/2011, 01:16
 
Fecha de Ingreso: diciembre-2010
Mensajes: 459
Antigüedad: 13 años, 4 meses
Puntos: 21
Respuesta: Problema struts2 hibernate OneToMany

De nada a mi tambien me parecio un tutorial muy bueno y facil de intuir, sin duda uno de los mejores por internet

Saludos

Etiquetas: hibernate, struts2
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 10:45.