EX297

Non più disponibile - Red Hat Certified Specialist in Persistence exam

Panoramica

Descrizione dell'esame

Nota: l'esame e la credenziale non sono più disponibili.

Red Hat Certified Specialist in Persistence exam verifica se i candidati sono pronti per le attività di creazione ed esecuzione della manutenzione di applicazioni Java™ in ambienti reali in cui vengono utilizzate le Java Persistence API (JPA) con JBoss® Hibernate®.

La credenziale Red Hat Certified Specialist in Persistence exam attesta la preparazione per l'uso nel mondo reale di Java™ Persistence API (JPA) con JBoss Hibernate. JPA è il framework per il linguaggio di programmazione Java per la gestione dei dati relazionali, mentre Hibernate è una persistenza relazionale di oggetti ad alte prestazioni e un servizio di query che implementa JPA.

Prendi dimestichezza con gli strumenti, l'ambiente e i requisiti di un esame Red Hat JBoss Certified Developer.

Destinatari dell'esame

Red Hat Certified Specialist in Persistence è progettato per:

  • Sviluppatori di applicazioni Java e architetti esperti.
  • Sviluppatori di database e componenti aziendali.

Requisiti per accedere all'esame

  • Aver già lavorato in un ambiente Red Hat Enterprise Linux
  • Analizzare gli obiettivi dell'esame Red Hat Certified Specialist in Persistence Exam (EX297)

Red Hat consiglia ai candidati di ottenere la certificazione Red Hat Certified JBoss Developer (RHCJD) prima di sostenere questo esame, benché non sia richiesto.

Obiettivi

Argomenti di studio per l'esame

Per facilitare la preparazione, negli obiettivi dell'esame vengono elencate le aree di attività previste nel programma. Red Hat si riserva il diritto di aggiungere, rimuovere e modificare gli obiettivi dell'esame. Tali modifiche saranno rese note anticipatamente.

Attività previste nell'esame

I candidati all'esame Red Hat Certified Specialist in Persistence dovranno essere in grado di svolgere le seguenti attività utilizzando JPA con Hibernate. Per agevolare lo studio, abbiamo anche inserito un elenco di fonti di riferimento consigliate per queste attività.

Mappare una tabella o un oggetto singolo
  • Comprendere il comportamento dei generatori di id, fra cui la modalità e i tempi di generazione del valore
  • Comprendere come mappare una chiave primaria, comprese informazioni su come:
    • Utilizzare le chiavi generate
    • Mappare chiavi di business semplici
    • Mappare le chiavi composte
  • Comprendere l'equivalenza di business e l'identità degli oggetti
  • Configurare informazioni specifiche per il database, quali nome della tabella, nome della colonna, larghezza della colonna e
    attributi della colonna (nullable, unique, type e così via)
  • Convertire un oggetto Java esistente in oggetto persistente mediante JPA/Hibernate
  • Mappare tipi di dati JPA di base sui tipi di database corrispondenti
  • Data una tabella di database esistente, creare un nuovo oggetto Java persistente per mapparla
  • Comprendere come e quando utilizzare il caricamento lazy o eager
  • Comprendere e utilizzare strategie di mappatura ottimali per le raccolte e i tipi di valori
  • Gestire proprietà e comportamenti specifici di Java o del modello di oggetto in un oggetto persistente. Tra questi:
    • Serializzazione
    • Proprietà transitorie
    • Proprietà generate e calcolate
    • Proprietà immutabili
    • Tipi di valori
    • Proprietà co-dipendenti (ossia i casi in cui i valori validi di una proprietà dipendono dal valore di un'altra
      proprietà)
Mappare le relazioni degli oggetti con JPA/Hibernate
  • Comprendere come mappare le relazioni, fra cui:
    • Relazioni dei valori (ad esempio, oggetto con dettagli "has-a")
    • Relazioni padre/figlio
    • Relazioni uno-a-uno (sia unidirezionali che bidirezionali)
    • Relazioni molti-a-uno e uno-a molti (sia unidirezionali che bidirezionali)
    • Relazioni molti-a-molti (sia unidirezionali che bidirezionali)
  • Comprendere i comportamenti di mappatura predefiniti, fra cui:
    • Nomi di chiavi estranee
    • Nomi di tabelle di associazione
  • Comprendere l'uso di chiavi estranee e tabelle di join quando si creano le relazioni
  • Comprendere come mappare una chiave primaria composta in base alla relazione
  • Comprendere le raccolte JPA/Hibernate (set, maps list e bag) e come si mappano agli oggetti e alle
    relazioni delle tabelle
  • Comprendere gli effetti sulle prestazioni delle diverse raccolte
  • Comprendere come e quando utilizzare il caricamento lazy o eager, comprese le prestazioni e gli
    impatti sul codice di entrambi
  • Dato un set di tabelle e relazioni esistenti, creare un grafico di oggetti Java persistente corrispondente
    al database
  • Mappare un modello di oggetto esistente, comprese varie associazioni, a un archivio di persistenza
  • Determinare le strategie di caricamento ottimali per un determinato processo aziendale
Mappare le relazioni di oggetti gerarchiche con JPA/Hibernate
  • Comprendere come rappresentare le diverse gerarchie di oggetti mediante JPA/Hibernate
  • Convertire una gerarchia di oggetti Java esistente in oggetti persistenti mediante JPA/Hibernate
  • Rappresentare un set esistente di relazioni di tabella come gerarchia di oggetti (ad esempio
    conto di risparmio, carta di credito e conto di prestito)
  • Comprendere le associazioni e le query polimorfiche
  • Comprendere i vantaggi e le limitazioni delle diverse strategie di eredità
  • Analizzare e determinare le rappresentazioni database ottimali per le diverse gerarchie di oggetti
Comprendere il comportamento transazionale (ACID)
  • Acquisire e utilizzare un contesto di transazione in:
    • Java EE/CMT
    • Java EE/BMT
    • Java SE mediante le API JPA
  • Comprendere come il contesto di persistenza è legato alla transazione in Java EE
  • Comprendere la propagazione del contesto transazionale con EJB3
  • Comprendere le conseguenze del rollback di una transazione a livello del contesto di persistenza
  • Comprendere i rischi legati alla simultaneità transazionale
  • Valutare i compromessi di perdita/danneggiamento dei dati rispetto alle prestazioni
Recuperare gli oggetti persistenti
  • Comprendere le strategie di caricamento di JPA/Hibernate:
    • Caricamento lazy
    • Caricamento subselect
    • Caricamento in batch
  • Comprendere e utilizzare le opzioni di query avanzate:
    • HQL/JPA QL
    • API dei criteri
    • Query native (SQL)
  • Utilizzare la funzione di recupero eager runtime
  • Utilizzare i parametri con nome
  • Prevedere ed evitare LazyInitializationException
  • Analizzare e migliorare le prestazioni di JPA/Hibernate
  • Comprendere e utilizzare le funzioni estese di blocco ottimista di JPA e di blocco pessimista di Hibernate
Manipolare gli oggetti persistenti
  • Comprendere gli stati delle entità, quali:
    • transitorio
    • persistente
    • associato
    • disconnesso
    • rimosso
  • Comprendere come modificare lo stato di un'entità o il relativo grafico mediante le API JPA
  • Comprendere il ciclo di vita del contesto di persistenza e il suo impatto sulle entità gestite
  • Applicare le funzioni batch di JPA/Hibernate:
    • Modelli d'uso delle API
    • Query DML
  • Determinare e applicare l'implementazione ottimale e le impostazioni a cascata per manipolare un grafico di oggetto
  • Valutare quando utilizzare i batch

Informazioni essenziali

Formazione e documentazione

Durante l'esame, l'accesso alla documentazione sarà limitato alla documentazione ufficiale della versione di JBoss Enterprise Application Platform oggetto di esame e a eventuali file campione e documentazione aggiuntiva inclusi nel prodotto. Non verrà eliminato nulla di ciò che è solitamente incluso.

Non sarà possibile accedere a jboss.org o alle wiki di hibernate.org. Benché rappresentino risorse utili e contengano contenuti rilevanti per l'esame, il loro formato non le rende adatte all'accesso in sede di esame. La valutazione riguarda te e non coloro che leggono e aggiornano la wiki.

Non è consentito portare con sé copie cartacee o documentazione elettronica in sede di esame. Questo divieto comprende appunti, libri o altro materiale. L'accesso a internet sarà rigorosamente controllato. In fase di studio è opportuno tenere presenti tali limitazioni.

Ambiente

Durante l'esame si lavorerà in un sistema Red Hat Enterprise Linux® 5.4, quindi è consigliabile avere esperienza nell'utilizzo di Linux o UNIX. Non è tuttavia necessaria un'ampia esperienza con Linux, dato che l'obiettivo di questo esame non è valutare le competenze specifiche per il sistema operativo, bensì le competenze relative a JPA con Hibernate. Si avrà a disposizione un ambiente desktop completo su cui lavorare, un elenco di comandi base da prendere come riferimento, le pagine man e altra documentazione fornita con Red Hat Enterprise Linux.

Fedora offre un'alternativa disponibile gratuitamente per esercitarsi su Linux. È disponibile una versione Live CD che consente di lavorare su Fedora senza doverlo installare sul computer. Anche se non corrisponde esattamente all'ambiente di Red Hat Enterprise Linux, è piuttosto simile al livello di familiarità richiesto.

Formato dell'esame

L'esame Red Hat Certified Specialist in Persistence si basa al 100% sulle prestazioni: i candidati devono dimostrare le proprie conoscenze e competenze svolgendo una serie di attività e non solo ripetendo nozioni teoriche. Gran parte degli esami per la certificazione IT prevede una serie di domande a cui rispondere scegliendo le opzioni A, B, C, o D o la sempre poco apprezzata Scegli tutte le risposte appropriate. Non troverai domande di questo genere nell'esame Red Hat Certified Specialist in Persistence exam. Anzi, l'esame non prevede domande. Verrà invece fornito un ambiente reale in cui eseguire una serie di attività del mondo reale. Ad esempio, potremmo chiedere di creare e mantenere un'associazione persistente piuttosto di porre una serie di domande sulle annotazioni di mappatura JPA. Di conseguenza, ai candidati viene consigliato di guardare con scetticismo i vari suggerimenti e indiscrezioni sugli esami, disponibili online. La migliore e unica fonte di informazioni sull'esame è questo documento.

L'esame Red Hat Certified Specialist in Persistence dura 4 ore. Prima dell'inizio dell'esame viene dedicato un po' di tempo all'identificazione dei partecipanti e alla raccolta di informazioni.

Ambiente dell'esame

Strumenti di sviluppo

Oltre all'ambiente desktop, sarà messa a disposizione una copia configurata e installata di JBoss Developer Studio 3 (JBDS). L'esame non riguarda JBDS e pertanto non è necessario conoscerlo o utilizzarlo per completare le attività richieste nell'esame. Tuttavia, JBDS è uno strumento eccezionale per lo sviluppo e la manutenzione delle applicazioni JPA/Hibernate e una certa esperienza e preparazione sul prodotto potrebbe essere di aiuto durante l'esame. Se non disponi dell'accesso a una copia supportata di JBDS, puoi scaricare una versione gratuita. Se non sei ancora registrato con Red Hat, dovrai creare un account Red Hat gratuito. Se desideri effettuare la registrazione con Red Hat per il download gratuito, per la preparazione all'esame sarà sufficiente una distribuzione standard di Eclipse con il plug-in JBoss Tools 4.

I progetti utilizzati nell'esame sono stati realizzati con Maven. Se non desideri utilizzare JBDS, puoi utilizzare un editor di testo standard (quale gedit o vi), la riga di comando e Maven. Tieni presente che l'esame è in un ambiente chiuso e che Maven viene eseguito in modalità offline. Non sarà possibile utilizzare alcun repository o plug-in di Maven che non sia già stato importato nell'ambiente locale.

Directory di lavoro

Quando si inizia l'esame, l'area di lavoro predefinita di JBDS conterrà una o più directory di progetto da utilizzare durante l'esame. Non è necessario utilizzare JBDS per l'attività di sviluppo, tuttavia per svolgere tutte le attività sarà necessario utilizzare la directory dell'area di lavoro predefinita e le directory di progetto fornite. Ripetiamo: tutti i codici e le risorse devono essere sviluppati all'interno della struttura delle directory fornite e devono essere coerenti con essa.

Standard di codifica

Si tratta di un esame basato su esercizi pratici durante il quale sarà necessario scrivere un codice per completare le attività. Le varie aziende hanno standard di codifica diversi e, come accade in un qualsiasi ambiente nel mondo reale, sarà necessario seguire gli standard di codifica locali. Nell'elenco seguente, sono riportate alcune informazioni sugli standard di codifica dell'esame, utili per la preparazione. Tali informazioni vengono fornite anche in sede di esame. Ai fini dell'esame, immagina di essere un sviluppatore di JPA/Hibernate appena assunto, incaricato di completare un progetto. Purtroppo lo sviluppatore originario ha dovuto interrompere il progetto e non è più possibile contattarlo. Quindi, sarai tu a dover individuare il punto in cui è stato lasciato il codice e completare il più possibile l'attività nel tempo a disposizione.

Il codice è ben documentato e al suo interno sono riportati diversi TODO che indicano ciò che è necessario fare. Tieni tuttavia presente che i Javadoc e i TODO non sono sufficienti; dovrai leggere le descrizioni delle attività e capire ciò che è necessario prima di eseguire un'azione su un TODO. Se ritieni che sia presente un conflitto tra il testo dell'attività, i diagrammi UML/PDM e il Javadoc/TODO esegui sempre quanto indicato dalla descrizione dell'attività.

Alcuni punti fondamentali da considerare durante il lavoro:

  • Il formato del codice non è importante. L'uso di schede e spazi e il posizionamento delle parentesi graffe non influisce sulla valutazione dell'esame.
  • Puoi mappare le classi utilizzando file XML, annotazioni sul campo o sulla proprietà; non importa quali scegli. Il codice esistente utilizza un numero ridotto di annotazioni a livello di campo, ma è semplice passare al proprio stile preferito di mappatura.
  • Molte delle classi sono organizzate in modo inusuale; i campi vengono raggruppati con i relativi metodi. Questa pratica è insolita e sconsigliata. Lo scopo di questa procedura è facilitare il lavoro su un singolo elemento senza dover andare avanti e indietro all'interno del codice per cercare i campi e i relativi metodi. Puoi ordinare i membri della classe se preferisci utilizzare una struttura di codice più normale. Suggerimento: in JBDS, il marcatore blu TODO a destra della finestra dell'editor e l'elenco delle proprietà nella visualizzazione della struttura sono molto utili per una rapida ricerca di queste classi.
  • A differenza del mondo reale, i commenti e i messaggi sulle eccezioni non sono importanti. La valutazione dell'esame viene fornita tramite computer, pertanto commenti e messaggi vengono del tutto ignorati.
  • La qualità del codice e l'approccio adottato sono importanti. È consigliabile seguire sempre le best practice e partire dal presupposto che le procedure inefficienti avranno una valutazione bassa. Ad esempio, un approccio idoneo per Java è quello di non rendere mai pubblici i membri sul campo; sarà quindi necessario utilizzare sempre i metodi standard Getter e Setter di JavaBeans per le proprietà dell'oggetto.
  • Il progetto dello scenario d'esame è stato creato insieme ad altre applicazioni in altri dipartimenti. A meno che non esplicitamente richiesto dalla descrizione di un'attività o da un TODO all'interno del codice, non modificare la firma di un metodo esistente. L'unica eccezione a questa regola consiste nella possibilità e nell'obbligo di rendere la firma più specifica, cioè utilizzare una sottoclasse e/o una classe generica più specifica, se opportuno. Ad esempio, è bene sostituire Collection{cke_protected}{C}%3C!%2D%2D%3F%2D%2D%3E con List quando è opportuno.
  • È possibile aggiungere campi, proprietà e metodi a seconda delle esigenze.
  • Dato che il progetto si concentra sulle entità persistenti e non puoi intervenire a livello di controller/servizio, dovrai codificare le entità persistenti in modo "difensivo". Ossia, i metodi di entità che utilizzi devono cercare di impedire alla logica di business di distruggere la coerenza degli oggetti. Ad esempio, un setter per una proprietà not nullable dovrebbe generare una NullPointerException se gli viene fornito un valore null.
  • In mancanza di affermazione contraria, tutte le entità devono utilizzare chiavi primarie del database che siano generate automaticamente dal motore di persistenza.
  • Se un metodo deve restituire un'eccezione a causa di un problema interno, è necessario utilizzare sempre una RuntimeException. Non creare un'eccezione specifica per il business. Ad esempio, utilizzare IllegalArgumentException se il problema riguarda un argomento non valido per un metodo. È possibile utilizzare IllegalStateException se il problema riguarda un'incompatibilità con lo stato del modello di oggetto o dell'archivio di persistenza. Ed è sempre possibile utilizzare NullPointerException quando è opportuno. A meno che non venga richiesto esplicitamente, non utilizzare le funzioni di persistenza transitoria di JPA per propagare automaticamente le modifiche alle entità associate di un grafico di oggetti. La nostra esperienza dimostra che per molti sviluppatori di livello aziendale questa funzione genera confusione e può dare origine a gravi problemi di prestazioni e affidabilità quando viene utilizzata in modo non appropriato. Un ultimo avviso: non è possibile valutare il lavoro se la compilazione non riesce o non è possibile eseguirlo correttamente. In particolare, un'associazione persistente interrotta può impedire la corretta esecuzione di tutte le azioni di persistenza. È preferibile impostare come commento un'associazione difficile piuttosto che rischiare che interferisca con altre associazioni funzionanti. I progetti di prova comprendono una buona selezione di test JUnit e consigliamo di eseguire l'intera suite di test dopo aver completato un'attività. Tieni presente, tuttavia, che i test JUnit inclusi non sono l'esame e il fatto che il codice realizzato superi i test non significa necessariamente che il lavoro otterrà il massimo punteggio.

Notifica dell'esito

I risultati ufficiali degli esami vengono forniti esclusivamente da Red Hat Certification Central. Red Hat non autorizza esaminatori o partner di formazione a comunicare i risultati direttamente ai candidati. Gli esiti degli esami vengono solitamente comunicati entro tre giorni lavorativi in base al calendario statunitense.

I risultati degli esami riportano i punteggi suddivisi per sezione. Red Hat non fornisce i risultati sulle singole prove, né informazioni su richiesta.