Sympathisant: SQL / HQL - unterschiedliche Results (PostgreSQL)

Hallo allerseits,

ich habe den Zustand, dass mir ein SQL-Statement als Ergebniss genau 2 Datensaetze liefert. Das selbe Statement in HQL (Hibernate Query Language) liefert mir jedoch nur 1 Datensatz. Und ich verstehe nicht warum.
Vielleicht sehe ich den Wald vor lauter Baeumen nicht mehr. Daher mal hier in die Runde gefragt, ob ihr einen signifikanten Unterschied der beiden Statements erkennt.

Hier das funktionierende SQL-Statement:

  
  
            select  
                       account.id, account.name,count(*)  
            from  
                       scan  
            inner join  
                       tag on scan.tag_id = tag.id  
            inner join  
                       account on tag.account_id = account.id  
            where  
                       scan.date_scanned >=  
                       (select max(scansub.date_scanned) from scan as scansub where scansub.unique_id = scan.unique_id)  
            group by  
                       account.id, account.name  

Hier das HQL-Statement

  
  
            select  
                            Account.id, Account.name, count(*)  
            from  
                            Scan as Scan  
            inner join  
                            Scan.tag as Tag  
            inner join  
                            Tag.account as Account  
            where  
                            Scan.dateScanned >=  
                            (select max(Scansub.dateScanned) from Scan as Scansub where Scansub.uniqueId = Scan.uniqueId)  
            group by  
                            Account.id, Account.name  

MfG,
Sympatisant

--
"Non dura iubeantur, non prohibeantur inpura."
  1. Salvete,

    Ok, ich habe jetzt mal das Debugging fuer Hibernate angestellt: Der Subselect bezog sich nicht auf die umfassende Query, sondern auf sich selbst (die Tabelle Scan). Wichtig: Das was nach as folgt ist so wie eine Variable, nicht der Name einer Klasse (den kennt Hibernate durch das entsprechende Mapping von selbst).
    Merke:  It is considered good practice to name query aliases using an initial lowercase, consistent with Java naming standards for local variables (eg. domesticCat). (Kapitel 14.2)

    PS: Warum loest man Probleme eigentlich meisst _direkt_ nach dem Posting? Is' schon komisch ;)

    MfG,
    Sympatisant

    --
    "Non dura iubeantur, non prohibeantur inpura."
    1. Hi!

      PS: Warum loest man Probleme eigentlich meisst _direkt_ nach dem Posting? Is' schon komisch ;)

      Weil eine Problemlösung direkt _vor_ dem Posting dieses obsolet machte!

      off:PP

      --
      "You know that place between sleep and awake, the place where you can still remember dreaming?" (Tinkerbell)