A Grails perzisztenciakezelője a GORM (Grails Object Relational Mapping), ami a Hibernate perzisztáló mechanizmusára épít. Minden osztályhoz automatikusan hozzárendeli az id és a version adatmezőket és generálja a perzisztáláshoz szükséges metódusokkal. [2] [3] Osztálymetódusok A GORM által kezelt domain osztályok rendelkeznek a következő statikus metódusokkal: metódus magyarázat példa count() Az adott osztályból tárolt rekordok száma az adatbázisban. def cowCount = Cow. count () exists() Igazat ad vissza, ha létezik adott típusú rekord. def cowExists = Cow. exists ( 1) find() Visszaadja a feltételnek megfelelő első rekordot. def cow = Cow. find ( "from Cow c where =? ", [ 'Lila']) findAll() Visszaadja a feltételnek megfelelő rekordok listáját. def cows = Cow. findAll ( "from Cow c where =? ", [ 'Lila']) findBy*() Visszaadja a mintának megfelelő első rekordot. def cow = Cow. findByColor ( "lila") findBy*Like() def cow = Cow. findByColorLike ( "li%") findAllBy*() Visszaadja a mintának megfelelő rekordok listáját.
Például a következő kódban implicit generálódnak a setColor(String color) és a getColor() metódusok; és az utolsó két sor, amely látszólag közvetlenül manipulálja az adatmezőt, tulajdonképpen a megfelelő metódusokat hívja meg. [11] class AGroovyBean { String color} def myGroovyBean = new AGroovyBean () myGroovyBean. setColor ( 'babarózsaszín') assert myGroovyBean. getColor () == 'babarózsaszín' myGroovyBean. color = 'türoszi bíbor' assert myGroovyBean. color == 'türoszi bíbor' A listák és az asszociatív tömbök kezelésére a Groovy-ban egyszerű és konzisztens szintaxis van. A Java szintaxishoz képest mindenképp. [12] def movieList = [ 'Dersu Uzala', 'Ran', 'Seven Samurai'] // deklarál egy (tömbnek tűnő) listát assert movieList [ 2] == 'Seven Samurai' movieList [ 3] = 'Casablanca' // hozzáad egy elemet a listához assert movieList. size () == 4 def monthMap = [ 'January': 31, 'February': 28, 'March': 31] // deklarál egy asszociatív tömböt assert monthMap [ 'March'] == 31 monthMap [ 'April'] = 30 // hozzáad egy kulcs-érték párt az asszociatív tömbhöz assert monthMap.
Elmondható viszont, hogy a Groovy nyelv bír olyan tulajdonságokkal, amik a Javából hiányoznak. A két nyelv hasonlósága miatt Java-programozók elég könnyen meg tudják tanulni a Groovy nyelvet, mert a Java szintaxisból kiindulva fokozatosan szokhatnak hozzá a Groovy specialitásaihoz. [7] A Java nyelvből hiányzó, de a Groovy nyelvben meglévő tulajdonságok között szerepel a statikus és a dinamikus típusolás (a def kulcsszóval), a closure-ök, az operátor túlterhelés, a natív szintaxis a listáknál és az asszociatív tömböknél, a reguláris kifejezések natív támogatása, a polimorf iterációk, a stringekbe ágyazott kifejezések, a helper metódusok és a biztonságos navigációs operátor (?. ), ami automatikusan ellenőrzi, hogy a változó nem null értékű-e (például variable? () vagy variable? ). [8] A Groovy megengedi egyes elemek elhagyását, amik a Javában kötelezőek, így a Groovy kód tömörebb tud lenni. [9] A Groovy szintaxisa gyakran tömörebb, mint a Javáé. Például egy iteráció a Standard Java 5 verziótól ilyen: for ( String it: stringArray) if ( it.
Vagy netán szagos kölnivel? Mert minden évben ezt kell elviselnem! - Ne aggódj, kincsem, eszem ágában sincs ilyesmi. Erre a célra mi ott a tűzoltóságnál a fecskendőt használjuk.
Jó ötletnek tűnhet, hogy egy szép helyszínen panorámafotót készítsünk, ám mi van akkor, ha a fotóalanyok teste emiatt deformálódik? Eláruljuk: elképesztően vicces képek születnek. Raptorként sétáló struccember, hatalmas fenék, kilógó fogak, test nélküli férfi: szeretnéd, ha így néznél ki egy fotón? Bizonyára nem. Azok az emberek sem szerették volna, akikről végül ilyen képek készültek. Az okostelefonok korában már nem feltétlen kell hatalmas fényképezőt magunkkal cipelnünk, elég megnyomnunk egy gombot, és máris kész a kép. Nagy divatnak örvend a panorámafotó is, amelyből az előbb említett vicces jelenetek sülhetnek ki. Poénos képek oldala. Előfordul, hogy a fotós túl gyorsan mozgatja a kamerát, az alany rosszul mozdul, vagy egyáltalán felbukkan valami zavaró tényező. Ebből a helyzetből olyan kacagtató képek születnek, amelyeket újra és újra meg akarsz majd nézni. Ha kíváncsi vagy rájuk, a képre kattintva lapozd végig galériánkat! Forrás: Reddit, Tumblr