Ebean

Ebean
Utvecklare Avaje
Stabil frisättning
12.8.1 / 30 mars 2021 ; 22 månader sedan ( 2021-03-30 )
Förvar
Skrivet i Java
Operativ system Cross-plattform
Plattform Java
Storlek 1,9 MB (arkiverad)
Typ Objektrelationell kartläggning
Licens Apache-licens 2.0
Hemsida ebean-orm .github .io  Edit this on Wikidata

Ebean är en objektrelationell kartläggningsprodukt skriven i Java . Det är utformat för att vara enklare att använda och förstå än JPA (Java Persistence API) eller JDO (Java Data Objects) produkter.

Enkelt API

Ebean har ett enklare API än JPA. Den uppnår detta genom sin " Session Less" -arkitektur. Ebean kräver ingen JPA EntityManager eller JDO PersistenceManager och detta tar bort begreppen fristående/anslutna bönor och problem som är förknippade med spolning/rensning och "sessionshantering" av EntityManagers. Detta gör Ebeans API mycket lättare att lära sig, förstå och använda.

Relationella egenskaper

Även om Ebean har fullständiga ORM-funktioner (motsvarande JPA) har den också inkorporerat "SQL/Relational"-funktioner. Tanken är att många utvecklingsinsatser kräver kontroll över den exakta sql, anropar lagrade procedurer eller enklare löses med "Relationella" tillvägagångssätt. Det slutliga målet för Ebean är att kombinera de bästa ORM-funktionerna från JPA med de bästa "Relational"-funktionerna från produkter som MyBatis i ett enda uthållighetsramverk.

Objektrelationell kartläggning

Ebean använder samma mappning som JPA med sina @Entity, @Table, @OneToMany etc. annoteringar och xml. Kartläggningen av Entity-bönor bör vara kompatibel mellan Ebean och JPA.

Går längre än JPA Ebean stöder Java Generics och hämtar "partiella" objekt med dess Query-objekt.

Exempel


    





  
   
    
    
    
    
     
     
     //  hitta kund efter id  Kundkund  =  Ebean  .  hitta  (  Kund.klass  ,  1  )  ;  _  //Spara ändringar av  kundobjektkunden  .  spara  ();  // mer komplex fråga med joins  Lista  <  Order  >  order  =  Ebean  .  hitta  (  Ord  .  klass  )  .  hämta  (  "kund"  )  .  hämta  (  "customer.billingAddress"  )  .  hämta  (  "customer.shippingAddress"  )  .  hämta  (  "detaljer"  )  .  hämta  (  "detaljer.produkt"  ,  "namn"  )  .  där  ().  eq  (  "shipDate"  ,  idag  )  .  findList  (); 

Se även

externa länkar