Announcement

Collapse
No announcement yet.

GWT-Hibernate/EclipseLink-DB

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • GWT-Hibernate/EclipseLink-DB

    Hallo!

    Hab ein Problem bei GWT mit der Transaction in eine Oracle-DB, hoffentlich kann mir jemand helfen... (ob mit Hibernate oder EclipseLink als Persistenceschicht ist sekundär)

    Problem:
    Hab eine Obertabelle (OT) und eine Untertabelle (UT) die mit einer 1:n-Beziehung verknüpft sind.
    Ich will einen Datensatz in der OT anlegen mit 2 dazugehörigen Datensätzen in der UT.
    Ein Commit für die Transaktion darf aber erst erfolgen, wenn der Datensatz in der OT und alle Datensätze in der UT problemlos angelegt werden konnten,
    da ein Datensatz in der OT ohne seine Datensätze in der UT sinnlos bzw. unvollständig ist.
    Ausserdem, wie kann ich in der GWT-Oberfläche "dynamisch"-viele Eingabefelder für die UT erzeugen und diese dann übergeben?

    ".getTransaction().commit();" bezieht sich ja nicht auf das commit in der DB, sondern übergibt die Liste an die DB.

    Währe sehr dankbar für eine Lösung
    mfg
    Paulitto

  • #2
    Verstehe das Problem nicht:

    Es liegt doch in deiner Hand die Klasse deiner OT richtig mit zwei Referenzen auf die Klassen deiner UT zu bestücken.

    Und wenn du das richtig mit den Annotations versehen hast, wird das auch so persistiert.
    Christian

    Comment


    • #3
      Das Problem liegt darin, dass ich es nicht schaffe den Code richtig hinzukriegen.
      Bin noch relativ neu im O/R-Mapping und hab in diesem Fall keine Vorstellung, wie ich das schaffen soll.
      Die Objektklassen hab ich erstellt:
      (A_ot)...
      @Id
      private String ID;
      @OneToMany(mappedBy="FK_OT")
      private List<A_ut> UT;
      private String DATA;
      ....
      (A_ut)....
      @ManyToOne
      @JoinColumn(name="FK_OT", nullable=false)
      private A_ot FK_OT;
      private String RISK;
      ....

      Aber wie soll ich den EntityManager in der "Impl" und die Flextable(Ausgabe) bzw. Textboxen(Eingabe) + die Methoden(z.b. ClickHandler) in der GUI coden?
      Was mir wichtig ist, dass bei einem Fehler (entweder in der OT oder UT) in der Eingabe ein "komplettes" Rollback durchgeführt wird, damit keine "Leichen" in der DB entstehen.
      Bisher habe ich bei Eingaben in 2 Tabellen gleichzeitig (1 Datensatz OT und 1 Datensatz UT) nen INSERT INTO-Trigger (in nem View mit den erforderlichen Columns) auf der DB gemacht, muss ich für mehrere Datensätze in der UT ne Prozedur für die Eingabe schreiben?

      Comment


      • #4
        Wie gesagt, verstehe das Problem nicht

        Du kannst jederzeit ein Rollback machen, wenn ein Fehler auftritt

        Aber wie soll ich den EntityManager in der "Impl" und die Flextable(Ausgabe) bzw. Textboxen(Eingabe) + die Methoden(z.b. ClickHandler) in der GUI coden?
        Das ist mir unverständlich. Erstelle entsprechende Dialoge, übergibt diesen die Klassen die angezeigt werden sollen.

        Bisher habe ich bei Eingaben in 2 Tabellen gleichzeitig (1 Datensatz OT und 1 Datensatz UT) nen INSERT INTO-Trigger (in nem View mit den erforderlichen Columns) auf der DB gemacht, muss ich für mehrere Datensätze in der UT ne Prozedur für die Eingabe schreiben?
        Warum sollte dazu ein Trigger/ Prozedur? erforderlich sein? Dein OR-Framework speicher den OT und alle UT weg. Sollte dabei ein Fehler auftreten, kannst du ein Rollback veranlassen
        Christian

        Comment


        • #5
          Leider kann ich mir da nix konkretes vorstellen... kannst du mir vlt. paar codes geben um mir zu zeigen, wie ich das realisieren könnte?

          Comment


          • #6
            http://docs.jboss.org/hibernate/stab...n/html_single/
            Christian

            Comment

            Working...
            X