public void loadOrdenList(ObjetivoDO objetivo) throws Exception {
    checkCache(objetivo, CHECK_UPDATE);
    // checkClass(departmentDO, DepartmentDO.class, CHECK_UPDATE);

    OrdenDAO ordenDAO =
        (OrdenDAO)
            FactoryDAO.getDAO( //
                OrdenDAO.class, connectionBean);

    objetivo.setOrdenList(ordenDAO.listByObjetivoId(objetivo.getId()));
  }
  public void loadPlanetRef(ObjetivoDO objetivo) throws SQLException {
    // XXX: Check this method's semantic
    checkClass(objetivo, ObjetivoDO.class, CHECK_UPDATE);

    PlanetaDAO planetaDAO = new PlanetaDAO();
    planetaDAO.init(connectionBean);

    //		    PlanetaDAO planetaDAO = (PlanetaDAO) FactoryDAO.getDAO(//
    //		    		PlanetaDAO.class, connectionBean) throws ClassNotFoundException, Exception;
    // unmanageable exceptions...

    Reference<PlanetaDO> ref = objetivo.getPlanetaRef();

    // ----------------------------------------
    // If ident == 0 there is nothing to do
    // ----------------------------------------

    if (ref.getRefIdent() == 0) {
      return;
    }

    PlanetaDO planetaDO = //
        (PlanetaDO) planetaDAO.loadById(ref.getRefIdent());

    ref.setRefValue(planetaDO);
  }
  @Override
  public void update(DataObject dataObject) throws SQLException {
    checkCache(dataObject, CHECK_UPDATE);
    checkClass(dataObject, ObjetivoDO.class, CHECK_UPDATE);

    ObjetivoDO objetivoDO = (ObjetivoDO) dataObject;

    StringBuffer strbuf = new StringBuffer();

    strbuf.append("UPDATE ");
    strbuf.append(getTableName());
    strbuf.append(" SET ");

    strbuf.append(ObjetivoDO.DESCRIPCION);
    strbuf.append(" = ");
    strbuf.append(singleQuotes(objetivoDO.getDescripcion()));

    strbuf.append(", ");

    strbuf.append(ObjetivoDO.NUMERO_DE_NPC);
    strbuf.append(" = ");
    strbuf.append(objetivoDO.getNumeroDeNpc());

    strbuf.append(", ");

    strbuf.append(ObjetivoDO.PLANETA_ID);
    strbuf.append(" = ");
    Reference<PlanetaDO> refPl = objetivoDO.getPlanetaRef();
    refPl.checkUpdate();
    strbuf.append(refPl.getIdAsString());

    strbuf.append(" WHERE ");
    strbuf.append(ObjetivoDO.ID);
    strbuf.append(" = ");
    strbuf.append(objetivoDO.getId());

    System.err.println(strbuf.toString());

    connection.createStatement().execute(strbuf.toString());
  }
  @Override
  public void insert(DataObject dataObject) throws SQLException {
    checkCache(dataObject, CHECK_INSERT);
    checkClass(dataObject, ObjetivoDO.class, CHECK_INSERT);

    ObjetivoDO objetivoDO = (ObjetivoDO) dataObject;

    objetivoDO.setId(getNextId());

    StringBuffer strbuf = new StringBuffer();

    strbuf.append("INSERT INTO ");
    strbuf.append(getTableName());
    strbuf.append(" VALUES (");
    strbuf.append(objetivoDO.getId());
    strbuf.append(", ");
    strbuf.append(singleQuotes(objetivoDO.getDescripcion()));
    strbuf.append(", ");
    strbuf.append(objetivoDO.getNumeroDeNpc());
    strbuf.append(", ");
    Reference<PlanetaDO> refPl = objetivoDO.getPlanetaRef();
    refPl.checkInsert();
    strbuf.append(refPl.getIdAsString());
    strbuf.append(")");

    System.err.println(strbuf.toString());

    connection.createStatement().execute(strbuf.toString());

    dtaSession.add(dataObject);
  }
  private ObjetivoDO resultSetToDO(ResultSet rs) throws SQLException {
    ObjetivoDO ret = //
        (ObjetivoDO)
            dtaSession.getDtaByKey( //
                ObjetivoDO.class, rs.getInt(ObjetivoDO.ID));

    if (ret != null) {
      return ret;
    }

    ret = new ObjetivoDO();

    ret.setId /*     					*/(rs.getInt(ObjetivoDO.ID));
    ret.setDescripcion /*				*/(rs.getString(ObjetivoDO.DESCRIPCION));
    ret.setNumeroDeNpc /*	            */(rs.getInt(ObjetivoDO.NUMERO_DE_NPC));

    Reference<PlanetaDO> refPl = new Reference<PlanetaDO>();
    refPl.setRefIdent(rs.getInt(ObjetivoDO.PLANETA_ID));
    ret.setPlanetaRef(refPl);

    return (ObjetivoDO) dtaSession.add(ret);
  }
  @Override
  public void delete(DataObject dataObject) throws SQLException {
    checkCache(dataObject, CHECK_DELETE);
    checkClass(dataObject, ObjetivoDO.class, CHECK_DELETE);

    ObjetivoDO objetivoDO = (ObjetivoDO) dataObject;

    StringBuffer strbuf = new StringBuffer();

    strbuf.append("DELETE FROM ");
    strbuf.append(getTableName());

    strbuf.append(" WHERE ");
    strbuf.append(ObjetivoDO.ID);
    strbuf.append(" = ");
    strbuf.append(objetivoDO.getId());

    System.err.println(strbuf.toString());

    connection.createStatement().execute(strbuf.toString());

    dtaSession.del(dataObject);
  }