Prikazani su postovi s oznakom Anotacije. Prikaži sve postove
Prikazani su postovi s oznakom Anotacije. Prikaži sve postove

subota, 21. siječnja 2012.

Lista Hibernate anotacija

Nešto sinoć surfam bespućima internetskih valova i kad mi na um nešto padne. Ne nije knjiga s police, nego ideja. Bacim se u pretragu, te potvrdim ono što sam i mislio. Na netu ne postoji (barem ja nisam mogao naći) listu hibernate anotacija. Samo onako prosta lista gdje s jedne strane su anotacija, a s druge kratko objašnjenje anotacije. Čak, što me i začudilo, ne postoji ništa slično ni na RefCardz?!? Najbliže što se tome može naći je na jbossovoj dokumentaciji o hiberanteu u ovom formatu:
http://docs.jboss.org/hibernate/annotations/3.5/reference/en/html_single/

Ali to nije ono što ja želim. Samo kada vidim scrollbar koliko je mršav u gornjem desnom uglu - muka mi je. To definitivno nije ono što ja želim i trebam. Meni treba lista anotacija (bez primjera primjenjivanja istih) kada nešto radim da bacim pogled u nadi da mi dođe inspiracija kako nešto napraviti.
Pogledao sam i knjigu Hibernate Recepies, A Problem-Solution-Approach koju imam. Ni tamo ne postoji ništa takvo, možda sam i naivan što sam išao i gledati kad naslov kaže kakva je knjiga i s kojim pristupom obrađuju teme. Ali da ne bude - nismo znali. Pa evo da i ja dodam koji centimetar znanja u metre valova u bespuću interneta.
Napominjem da neću stavljati anotacije za Hibernate Search i ako uspijem za Cashing. To su područja koja su nauke same za sebe i mogli bi se pisati blogovi, knjige i sl. samo za njih. Pa da počnem:

  • @Entity - osnovna antacija kojom označavamo klasu koju želimo mapiratu u bazu
  • @Id - uz entity minimum potreban za mapiranje klase. Označava primarni ključ
  • @GeneratedValue - automatska inkrementacija id-a
  • @Table - služi za definiranje imena tablice, kataloga i scheme za vašu klasu
  • @Version - dodavanje "verzije" u dodatnu kolonu radi uspoređivanja kontaktirajućih updateva 
  • @Transient - po defaultu sva polja u klasi će biti mapirana u bazi, ako neko polje ne želimo mapirati koristimo ovu anotaciju
  •  @Lob - po defaultu npr. za String Hibernate će pretvoriti to u bazi u VarChar s dužinom od 255 znakova, tako da je Lob oznaka za tkz. velike oznake. 
  • @Embeddable - umetanje i spajanje komponenti u klasu
  • @OneToOne - mapiranje jedan naprama jedan
  • @OneToMany - mapiranje jedna naprema više
  • @ManyToMany - mapiranje više naprema više
  • @JoinColumns - na kojoj osnovi će se vršiti mapiranje
  • @PrimaryKeyColumn i @PrimaryKeyColumns - definiraju primarni ključ subklasa
  • @SecondaryTable - mapiranje klase u nekoliko tablica
  • @Cashable - oznaka da ćemo koristiti cashing u entitiju
  • @NamedQuery i @NamedQueries - stvaranje upita (ne znam kako da to prevedem na Hr) - stvaranje named queries
  • @NotNull - ne dopuštanje null vrijednosti
  • @Size.max - definiranje veličine polja
  • @Min, @Max - definiranje raspona
Naravno ovo nisu sve anotacije, niti se trudim ih sve napisati. Neke je jednostavno bez primjera ili poviše rečenica nije lako opisati. Npr. ne znam kako da prevedem named query osim imenovanog upita?!? Ujedino sam i dobio ideju za neki budući post - izgubljeni u prijevodu, koliko se "prevođenjem" programerskih izraza gubi u prijevodu. Za sada toliko, s vremenom proširit ću ovaj popis.