2014-03-24

Key-value programování v jazyce Java

Ujorm je knihovna postavená na key-value architektuře doménových objektů, které přistupují ke svým atributům pomocí tak zvaných Klíčů. Na několika krátkých příkladech bych rád demonstroval zajímavé či nové vlastnosti jádra frameworku Ujorm verze 1.45.

Odkaz na celý článek:
http://ujorm.org/sample/key-value-cz.html

Obsah:
  • Zápis a čtení hodnot
  • Obnovení defaultních hodnot
  • Mělká kopie objektu
  • Validace atributů při zápisu
  • Kompozitní Klíče
  • Criterion jako popis podmínky
  • Criterion pro filtrování kolekce
  • Řazení kolekcí
  • Import CSV formátu

2014-03-11

Ujorm verze 1.44

V Maven repozitářích je k dispozici nová verze Ujorm, která obsahuje dlouho očekávanou podporu pro tvorbu hierarchických dotazů, ve kterých se cizí relace databázové tabulky odkazují na sama sebe. Dříve bylo nutné pro tento typ dotazů používat nativní SQL příkazy, nově lze tyto dotazy modelovat pomocí Ujorm klíčů typu relace, za které se vkládá alias referencované tabulky. Ukázka použití je demonstrována na dotazu, který vyhledá všechny zákazníky s příjmenín "Brown" a s prarodičem "Smith":


     Criterion<Customer> crn1, crn2, crn3;
     crn1 = Customer.PARENT.alias("parent1")
       .add(Customer.PARENT).alias("parent2")
       .add(Customer.SURENAME)
       .whereEq("Smith");
     crn2 = Customer.SURENAME.whereEq("Brown");
     crn3 = crn1.and(crn2);


     Customer customer = session.createQuery(crn3).uniqueResult();


Uvedený Aliasy lze vyuźít také v případech, kdy jedna entita obsahuje více relací na stejnou entitu, příkladem mohou být dvěr relace Person.MOTHER, Person.FATHER.


Mezi další novinky Ujorm řady 1.4x patří:
  • XML konfiguraci ORM meta-modelu lze validovat pomocí XSD souboru
  • k dispozici je nový modul (ujo-xsd) pro generování XSD souborů podle UJO třídy
  • ORM podporuje alternativně nativní DB sekvence pomocí třídy NativeDbSequencer
  • ORM lazy loading je možné povolit volitelně na uzavřené session, v takových případech se otevírá nová DB connection na nezbytně nutnou dobu
  • došlo k odstranění zastaralého interface UjoProperty, který byl od verze 1.30 deprecated a by nahrazen novým interfacem Key (včetně souvisejících metod)

Podrobnějśí popis změn je v release notes.