sql >> Database teknologi >  >> RDS >> Oracle

JOINs med betingelse i HQL-forespørgsel?

Tilsvarende er HQL

  select header.advmagencymaster.mamaid,
         header.advmagencymaster.mamaname,header.trohiono 
         from ADVRoheader header 

Men i HQL er det bedre at hente hele objektet, så vi også kan bruge de andre egenskaber

   from ADVRoheader header 
   inner join 
   header.advmagencymaster master

HQL er ikke afhængig af den underliggende database. Det vil være det samme for alle databaser (Oracle, Mysql, SQL-server osv.). Kun vi skal ændre databaseforbindelsen i hovedkonfigurationsfilen.

Dine modelklasser vil se sådan ud

class ADVMAgencyMaster{
  private String mamaid;
 private String mamaname;  //getters and setters
}

class ADVRoheader{
 private String trohiono;
 private ADVMAgencyMaster advmagencymaster;     // Reference to the ADVMAgencyMaster
 //getters and setters}

Du har allerede defineret en mange-til-én-relation i xml

 <many-to-one name="advmagencymaster" class="com.adv.hibernatebean.ADVMAgencyMaster" fetch="select"> <column name="TROHAMAID" /></many-to-one>

Så mens indlæsning af ADVRoheader-objekt vil hibernate også indlæse den indre objektreference "advmagencymaster".

for dette skal du angive lazy="false" i stedet for fetch="select".

lazy="true" - doven indlæsning vil det kun indlæse overordnet objekt

doven-"falsk" - ivrig indlæsning vil den indlæse underordnede(indre) objekt også med overordnet objekt.

tilføj begge hbm.xml-filer til hovedkonfigurationsfilen (hibernate.cfg.xml) som følger

 <mapping resource="com/ADVRoheader.hbm.xml"></mapping>
 <mapping resource="com/ADVRomaster.hbm.xml"></mapping> 

lige før session fabrik lukker tag her sker kortlægningen med Database.

Normalt for generatorelementer skal vi bruge typen heltal og også foretage ændringen i databasen.

Ekstra filtrering kan vi tilføje 'where'-sætning efter hovedforespørgslen. Her kræves kun sammenføjningsbetingelser, og den håndteres allerede af dvaletilstand.



  1. Oracle PL/SQL UTL_FILE.PUT buffering

  2. Hvorfor returnerer PostgreSQL ikke null-værdier, når betingelsen er <> sand

  3. Opdater automatisk felt i databasen

  4. Kontroller, om filen findes eller ej i sql-serveren?