Java - problema al guardar y editar

 
Vista:

problema al guardar y editar

Publicado por Adriana (1 intervención) el 10/08/2012 19:01:50
buenas tardes mi problema es que yo tengo dos tablas que estan realcionadas llamadas Direccion y Persona pero direccion no es obligatorio para persona es decir puedo o no la persona tener una direccion


este es mi codigo

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
private void guardarAccion()  {
        try {
 
            List<Empresa> empresas = empresaController.findEmpresaEntities();
 
            for (Empresa empresa1 : empresas) {
                empresa = empresa1;
                break;
            }
 
            persona.setId(idTextField.getText());
            persona.setCi(Integer.parseInt(ciTextField.getText()));
            persona.setNombre(nombrePerTextField.getText().toUpperCase());
            persona.setApellido(apellidoPerTextField.getText().toUpperCase());
            SimpleDateFormat formatoFecha = new SimpleDateFormat("yyyy:MM:dd");
            persona.setFechaNacimiento(fechaNacimientoDateChooser.getDate());
            persona.setCodigoEmpleado(codigoEmpleadoTextField.getText());
            persona.setCargoId((Cargo) tiposCargosComboBox.getSelectedItem());
            persona.setEmpresaRif(empresa);
 
            if (!editando) {
              if(direccion != null){
              direccion.setDireccion(direccionTextArea.getText());
              direccion.setCiudad(ciudadTextField.getText());
              String estado = (String) estadoComboBox.getSelectedItem();
              direccion.setEstado(estado);
 
 
              dirController.create(direccion);
              controller.create(persona);
 
 
            } else{
              direccion.setDireccion(null);
              direccion.setCiudad(null);
              direccion.setEstado(null);
            }
 
                JOptionPane.showMessageDialog(this, "Persona creada exitosamente", "informacion", JOptionPane.INFORMATION_MESSAGE);
            } else {
                if(direccion != null){
              direccion.setDireccion(direccionTextArea.getText());
              direccion.setCiudad(ciudadTextField.getText());
              String estado = (String) estadoComboBox.getSelectedItem();
              direccion.setEstado(estado);
 
              dirController.edit(direccion);
              direccion.setId(Integer.parseInt(persona.getId()));
                }
                controller.edit(persona);
 
                JOptionPane.showMessageDialog(this, "Persona actualizada exitosamente", "informacion", JOptionPane.INFORMATION_MESSAGE);
            }
            llenarTabla();
            habilitaCampos(false);
        } catch (PreexistingEntityException e) {
            JOptionPane.showMessageDialog(this, "La Persona ya existe", "Error", JOptionPane.ERROR_MESSAGE);
            habilitaCampos(false);
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, "Ha ocurrido un error, comuniquese con soporte", "Error", JOptionPane.ERROR_MESSAGE);
           habilitaCampos(false);
        }
 
    }
 
    private void editarAccion() {
        int respuesta = JOptionPane.showConfirmDialog(this, "Esta acción puede cambiar los datos de la Persona, ¿Desea continuar?", "Advertencia", JOptionPane.YES_NO_OPTION);
        if (respuesta == JOptionPane.YES_OPTION) {
            habilitaCampos(true);
            direccion = persona.getDireccionId();
            editando = true;
        }
    }

si la persona no quiere poner direccion el lo guarda bien en bd es decir lo coloca null y no le asigna a persona una direccion id

pero cuando quiero editar a la persona y colocarle una direccion no me guarda direccion ni le asigna un id tendria la posible solucion ????espero su respuestas
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder