HOla a todos me encuentro desesperado y recurro a este valioso foro para encontrar respuesta, espero poder explicarme bien.
Tengo un proyecto donde estoy combinando estas 3 tecnologias Struts 2 , JPA y Spring
En la base de datos tengo 2 tablas la cual tengo relacion 1:N la cual muestro.
tabla: actividad
idActividad
responsable
fk_torre
tabla: torre
idTorre
nombreTorre
La relacion es el campo idTorre de la table torre al campo fk_torre de la tabla actividad hasta aqui todo bien. En mi Jsp tengo un formulario donde tengo lo siguiente:
Código PHP:
<s:form action="altaFormulario.action" >
<s:textfield name="responsable" label="Responsable" />
<s:select name="torre" label="Seleccionar Torre" list="#{'1':'Technology Integration Middleware' , '2':'Intel' , '3':'Storage' , '4':'Backup and Restor' , '5':'Mainframe' ,'6':'DB2' , '7':'Sybase' , '8':'Oracle' , '9': 'AIX OS' }" headerKey="-1" headerValue="Seleccionar Torre" />
<s:submit value="Enviar" />
</s:form>
en mis clases java donde estoy usando las persistencias son las siguientes:
Actividad.java
Código PHP:
package com.main.dto;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
@Entity
@Table(name="actividad")
public class Actividad {
@Id
@GeneratedValue
private int idActividad;
private String responsable;
private String proyecto;
private String fechaCompromiso;
private String issues;
private String comentarios;
@ManyToOne
@JoinColumn(name="fk_torre" , nullable= false )
private Torre torre;
public Actividad ()
{
}
Torre.java
Código PHP:
package com.main.dto;
import java.util.List;
import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.OneToMany;
import javax.persistence.Table;
@Entity
@Table(name="torre")
public class Torre {
@Id
@GeneratedValue
private int idTorre;
private String nombreTorre;
@OneToMany (cascade = CascadeType.ALL , mappedBy = "torre" )
List<Actividad> actividad;
Hasta aqui todo bien al momento, al momento de correr el proyecto arranca, lleno el formulario del jsp pero al momento de presionar el boton enviar me lanza el siguiente error:
Código PHP:
dvertencia: Error setting expression 'torre' with value '[Ljava.lang.String;@a8c62a'
ognl.MethodFailedException: Method "setTorre" failed for object com.main.dto.Actividad@13861fb [java.lang.NoSuchMethodException: com.main.dto.Actividad.setTorre([Ljava.lang.String;)]
Y si se que es obvio por que el campo del <s:select name="torre" /> son puros string en este caso los numeros que estoy poniendo y aqui es mi confusion y por consecuencia error, que tengo que hacer convertirlo a int ? por que en la bd tanto el campo de la tabla torre es int y la llave foranea tambien lo es, entonces no se que hacer la vdd, solicito de su ayuda, GRACIAS!!!