# ejb Update



## mayer (9. Aug 2005)

Könnte mir vielleicht jemand sagen wie man in ejb eine Update-Methode realisieren kann.

Ich klicke in meiner Tabelle auf änderen. Danach kann ich die gewünschten Werte ändern. Ich weiß nur noch wie ich
diese dann in die Datenbank schreiben soll.

Kann mir vielleicht jemand helfen??

mfg manuel


----------



## mayer (9. Aug 2005)

Ich habe das Problem jetzt folgendermaßen gelöst:

Auszug aus dem EJB-Bean:


```
public boolean ejbHomeUpdate(Long uid, String tierNummer, String stierNummer, Date belDatum, String chargenNr, String reihenFolge, String besNummer, String baRdvNr) throws RFNotValidException, TierNotValidException, WrongDateException
  {
//  Datensatz laden
    PTierBelegungEbPK pk = new PTierBelegungEbPK();
    pk.ebBelUid = uid;
    
    this.refresh(pk);
  
    Long stierUid = null;
    Long tierUid = null;
    Connection con = null;
    PreparedStatement ps = null;
//  Belegungsdatum prüfen
    checkBelegungsDatum(belDatum);
    
//  Reihenfolge prüfen
    checkRf(reihenFolge);
    
    try 
    { 
      ResultSet rs;
      con = getConnection();
      
//    TierUid auslesen und prüfen
      ps = con.prepareStatement("select rdv4m_eb.get_tier_uid(?) from dual");
      ps.setString(1,tierNummer);
      rs = ps.executeQuery();
      rs.next();
      tierUid = new Long(rs.getLong(1));
      try 
      {
        checkTierValid(tierUid,this.bsLfbisLkvnr,belDatum);
      }
      catch(TierNotValidException etier) 
      {
        throw etier;
      }

//    StierUid auslesen und prüfen
      ps.setString(1,stierNummer);
      rs = ps.executeQuery();
      rs.next();
      stierUid = new Long(rs.getLong(1));
      try
      {
        checkStierValid(stierUid,baRdvNr);
      }
      catch(TierNotValidException estier) 
      {
        throw estier;
      }
    }
    
    catch(TierNotValidException tnve) 
    {
      throw tnve;
    }
    
    catch(Exception e) 
    {
      System.out.println("Fehler in ejbHomeUpdate");
      e.printStackTrace();
    }
      
    this.persNr = besNummer;
    this.baRdvNr = baRdvNr;
    this.belegungsdatum = belDatum;
    this.chargenNr = chargenNr;
    this.aktionsCode = "U";
    this.reihenFolge = reihenFolge;
    this.tierUid = tierUid;
    this.stierUid = stierUid;
    
    this.ejbStore();
    return true;
  }
```


mfg manuel


----------



## Bleiglanz (9. Aug 2005)

versteh ich nicht

warum schreibst du dafür eine Home Methode??

schreib lieber eine sessionbean-methode

die erst findByPrimaryKey aufruft, sich die bean holt und dann die entsprechenden Property-Setter aufruft?

=> dann sparst du dir den hart kodierten "SELECT" Befehl


----------

