Announcement

Collapse
No announcement yet.

Java SQL Turbine

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

  • Java SQL Turbine

    Hallo,

    kennt sich hier jemand zufällig mit turbine aus?

    Ich habe da ein kleines Problem bei einer Datenbankabfrage.

    Ich weiss wie ich mir die Listen anhand von Abfragen zusammenstellen kann.

    Aber wie kann ich den Count (.size()) eines gewählten Croteriums zurück geben um ihn dann in einer dazugehörigen .vm Template auszugeben?

    Mal ein Kleines Beispiel:

    public class UserLeistungsuebersicht extends SecureScreen
    {

    private static Log log = LogFactory.getLog(UserLeistungsuebersicht.class);

    public void doBuildTemplate(RunData data, Context context)
    {

    String nutzer = data.getUser().getName();
    context.put("leistung", getLeistung(nutzer));
    super.doBuildTemplate( data, context );
    }
    public List getLeistung(String nutzer)
    {
    try
    {

    Criteria crit = new Criteria();
    crit.add(TurbineUserPeer.LOGIN_NAME,nutzer);
    crit.addJoin(TurbineUserPeer.USER_ID, NutzerLeistungenPeer.USER_ID);
    crit.addJoin(LeistungenPeer.LEISTUNGS_ID, NutzerLeistungenPeer.LEISTUNGS_ID);
    crit.addSelectColumn(NutzerLeistungenPeer.NL_ID);
    crit.addSelectColumn(LeistungenPeer.LEISTUNG);
    crit.addSelectColumn(LeistungenPeer.PUNKTE);
    crit.addSelectColumn(LeistungenPeer.LEISTUNGS_ID);
    crit.addAscendingOrderByColumn(NutzerLeistungenPee r.NL_ID);
    List items = NutzerLeistungenPeer.doSelectVillageRecords(crit);

    List v_list = new ArrayList();
    {

    NL_Zusammen nleistung;
    Leistungen leistung;
    Iterator v_it_Records = items.iterator();
    while(v_it_Records.hasNext())
    {
    Record v_vill_Record = (Record) v_it_Records.next();
    nleistung = new NL_Zusammen();
    //leistung = new Leistungen();
    nleistung.setNlId(v_vill_Record.getValue(NutzerLei stungenPeer.NL_ID).asInt());
    nleistung.setLeistung(v_vill_Record.getValue(Leist ungenPeer.LEISTUNG).asString());
    nleistung.setPunkte(v_vill_Record.getValue(Leistun genPeer.PUNKTE).asInt());
    nleistung.setLeistungsId(v_vill_Record.getValue(Le istungenPeer.LEISTUNGS_ID).asInt());

    //v_list.add(nleistung);
    v_list.add(nleistung);
    //v_list.add(nleistung, leistung);
    //v_list.add(nleistung);
    }
    }
    return v_list;

    }
    catch ( Exception e )
    {
    log.error("No entries found: " + e.toString() );
    return null;
    }
    }

    }

    Jetzt möchte ich aber net List items sondern
    int itemsize = NutzerLeistungenPeer.doSelectVillageRecords(crit). size();

    Wie bekomm ich das jetzt gebacken?

    Bin für jeden Tip sehr dankbar...

    MFG
    Torsten

  • #2
    Hallo Torsten,

    In etwas so (ohne Garantie, nicht getestet):

    <PRE>
    Criteria criteria = new Criteria();
    criteria.add(TurbineUserPeer.LOGIN_NAME,nutzer);
    criteria.addJoin(TurbineUserPeer.USER_ID, NutzerLeistungenPeer.USER_ID);
    criteria.addJoin(LeistungenPeer.LEISTUNGS_ID, NutzerLeistungenPeer.LEISTUNGS_ID);
    crit.addSelectColumn("COUNT(" + LeistungenPeer.LEISTUNGS_ID + ")");
    List items = NutzerLeistungenPeer.doSelectVillageRecords(criter ia);
    Record record = (Record)items.get(0);
    int size = record.getValue(1).asInt();
    </PRE>

    Gruß,

    Alwi

    Comment


    • #3
      Und wie bekomm ich die int size in die Liste hinein? Dabei liegt ja das Problem? Context will eine Liste haben :-

      Comment


      • #4
        Hab es grad getestet, geht nicht.

        Über
        int l = NutzernachrichtenPeer.doSelect(criteria).size; bekommt man schon den gwünschten count.

        Das Problem ist aber das die Methode dann auch int sein muß und nicht mehr liste, und context will aber eine Liste.
        Also muß ich int l irgendwie in die Liste bekommen, aber wie???

        Bin hierbei am verzweifeln..

        Comment


        • #5
          Geht

          <PRE>
          List list = new ArrayList();
          list.add(new Integer(size));
          return list;
          </PRE>

          nicht

          Comment


          • #6
            Danke!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

            so gehts!!!

            Leider findet man im Netz so wenig über Turbine?

            Kennst du da irgend ein gutes Tutorial

            Comment


            • #7
              Außer den Infos auf der Jakarta-Seite leider nicht

              Comment


              • #8
                Hm, diese Infos sind leider auch die einzigen, die ich im Netz gefunden hab...

                Hast du ne Ahnung, warum das momentan so wenig nutzen? Ich find das Project Turbine voll genial!!!

                MFG
                Torste

                Comment


                • #9
                  Keine Ahnung. Gerade in der Web-Application Ecke gibt es unzählige Frameworks und Technologien. Kann sich halt nicht alles durchsetzen, auch wenn es gut ist

                  Comment


                  • #10
                    Hallo

                    ich hab mal wieder ein neues Problem.

                    Jetzt möchte ich nicht mehr über size() die Anzahl ermitteln sondern die Summe.

                    Also z. B. aller Werte einer Spalte, wie mache ich das? Bin hier schon wieer am verzweifeln.
                    Soweit bin ich jetzt schon, wie müßte es dann weiter gehen?

                    public List getDurchschnitt(int userId)
                    {
                    try
                    {
                    Criteria criteria = new Criteria();
                    criteria.add(NutzerLeistungsAusgangPeer.USER_ID_AN , userId);
                    criteria.add(NutzerLeistungsAusgangPeer.BEWERTET, true);
                    criteria.addJoin(NutzerLeistungsAusgangPeer.USER_I D_VON, TurbineUserPeer.USER_ID);
                    criteria.addJoin(NutzerLeistungsAusgangPeer.NL_ID, NutzerLeistungenPeer.NL_ID);
                    criteria.addJoin(NutzerLeistungenPeer.LEISTUNGS_ID , LeistungenPeer.LEISTUNGS_ID);
                    criteria.addJoin(NutzerLeistungsAusgangPeer.NL_AUS GANG_ID, BewertungenPeer.NL_AUSGANG_ID);
                    criteria.addSelectColumn(BewertungenPeer.BEWERTUNG );

                    MFG
                    Torste

                    Comment

                    Working...
                    X