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.
Žádné komentáře:
Okomentovat