Da un paio di giorni mi sto approcciando a Hibernate...sono un pivello totale (studio e applico quello che studio)...
Ho due tabelle così fatte:

tabPadre: tabFiglio:
codice_azienda; codice_azienda
cognome; progressivo
nome; tipoIndirizzo
via
citta

Primary key:codice_azienda Primary key:codice_azienda,progressivo,tipoIndirizzo
Foreign Key:codice_azienda reference tabPadre.codice_azienda

Quindi la relazione è one-to-many da tabPadre a tabFiglio
La particolarità è che la foreign key di tabFiglio è un sottoinsieme della primary key.
E d'altronde per esigenze progettuali non si può fare a meno di questa cosa.
Dopo aver creato la classe mappata su tabPadre (che chiameremo Padre) e le classi mappate su tabFiglio (che chiameremo Figlio), fatte le associazione dovute tra le classi (cioè settati i riferimenti delle istanze di Figlio in Set<Figlio> di Padre e viceversa), quando viene lanciata la session.persist(Padre), viene sollevata un exception che riguarda la foreign key (non ricordo precisamente il messaggio) come se venisse violata.
Allora dopo vari tentativi ho provato a seguire un metodo un pò più standard...ho modificato la definizione della tabella inserendo un campo id di tipo autoincrement che facesse da primary key lasciano invariata la foreign key e dopo poco modifiche al codice, tutto funziona: tutte le istanze delle classi vengono memorizzate nel db.
Qualcuno mi saprebbe spiegare tale comportamento? C'è qualche accorgimento da applicare nei file di configurazione?

Grazie mille e spero tanto di essere stato chiaro. Magari se il post si estende, posterò qualche pezzo di codice.