Allora se la tua domanda è "Ogni tabella del database deve avere una rispettiva Classe Java ?"
La mia personale risposta è assolutamente no, in quanto un database è relazionale mentre Java è un linguaggio a oggetti e la cosa non è esattamente la stessa cosa.
Ti posso dire che JPA ti permette di gestire le cose in entrambe le maniere cioè avere una relazione dentro ordine che si riferisce ad articoli ordinati, o ancora meglio ti permette di "ignorare" la tabella di relazione e mettere all'interno di Ordine una lista di Articoli, poi si preoccuperà lui di aggiornare la tabella di relazione.