Ciao a tutti... Mi trovo in un problema che a semplice vista pare sia facile, ma la verità mi trovo in difficoltà, quindi proverò a farvelo vedere sperando possiate darmi una manina...
Si tratta di JPA in Spring... Quindi ho 2 tabelle:
codice:
-Ruolo:
   -- id_ruolo INTEGER PRIMARY KEY
   -- nome_ruolo VARCHAR(50)
   -- abilitato TINYINY
-Utente:
   -- id_utente INTEGER PRIMARY KEY
   -- username VARCHAR(50)
   -- password VARCHAR(50)
   -- id_ruolo INTEGER FOREIGN KEY (si referenzia a id_ruolo della tabella Ruolo)
   -- nome VARCHAR(50)
   -- cognome VARCHAR(50)
   -- email VARCHAR(50)
   -- abilitato TINYINT
OK... Adesso faccio vedere le due Entity:

codice:
@Entity
@Table(name = "ruolo")
public class Ruolo implements Serializable {
	private static final long serialVersionUID = 6024265608045458952L;
	
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "id_ruolo")
	private Integer id_ruolo;
	
	@Column(name = "nome_ruolo")
	private String nome_ruolo;
	
	@Column(name = "abilitato")
	private Boolean abilitato = true;
	
	@OneToMany(mappedBy = "ruolo", fetch = FetchType.EAGER)
	private List<Utente> utenti;
       /* --- GETTER & SETTER*/
}

@Entity
@Table(name = "utente")
public class Utente implements Serializable {
	private static final long serialVersionUID = 7356319993206398640L;
	
	@Id
	@GeneratedValue(strategy = GenerationType.IDENTITY)
	@Column(name = "id_utente")
	private Integer id_utente;
	
	@Column(name = "username")
	private String username;
	
	@Column(name = "password")
	private String password;
	
	@ManyToOne(fetch = FetchType.EAGER, cascade = CascadeType.ALL, targetEntity = Ruolo.class)
	@JoinColumn(name = "id_ruolo", referencedColumnName = "id_ruolo")
	private Ruolo ruolo;
	
	@Column(name = "nome")
	private String nome;
	
	@Column(name = "cognome")
	private String cognome;
	
	@Column(name = "email")
	private String email;
	
	@Column(name = "abilitato")
	private Boolean abilitato = true;
      /* --- GETTER & SETTER ---*/
}
Il controller:

codice:
@Controller
@RequestMapping("/utente.htm")
public class UtenteController {
	
	@Autowired
	private RuoloManager ruoloManager;
		
	@RequestMapping(method = RequestMethod.POST)
	public String onSubmit(
			@ModelAttribute("utente") Utente utente,
			BindingResult result, SessionStatus status) {
		
		System.out.println(utente.toStringUtente());
		
		return "welcome";
	}
	
	@RequestMapping(method = RequestMethod.GET)
	public String initForm(ModelMap model) {
		model.addAttribute("utente", new Utente());
		return "utente";
	}
	
	@ModelAttribute("listRuoli")
	public List<Ruolo> caricaRuoli() {
		return ruoloManager.listRuoli();
	}
	
}
La JSP - utente.jsp:
codice:
<form:form name="f_utente" method="POST" commandName="utente">
	<table>
		<tr>
			<td>Cognome:</td>
			<td><form:input path="cognome" /></td>
		</tr>
		<tr>
			<td>Nome:</td>
			<td><form:input path="nome" /></td>
		</tr>
		<tr>
			<td>E-mail:</td>
			<td><form:input path="email" /></td>
		</tr>
		<tr>
			<td>Username:</td>
			<td><form:input path="username" /></td>
		</tr>
		<tr>
			<td>Password:</td>
			<td><form:password path="password" /></td>
		</tr>
		<tr>
			<td>Ruolo:</td>
			<td>
				<form:select path="ruolo" onchange="javascript:alert(this.value);">
					<c:forEach items="${listRuoli}" var="ruolo">
						<form:option label="${ruolo.nome_ruolo}" value="${ruolo}"/>
					</c:forEach>
				</form:select>
			</td>
		</tr>
	</table>
	<input type="submit" value="Salva" />
</form:form>
E il risultato della stampa che è dentro il metodo onSubmit() è:

Utente [id_utente=null, username=ggg, password=ggg, ruolo=null, nome=ggg, cognome=ggg, email=ggg, abilitato=true]

Cioè: tutte le proprietà dell'entità Utente vengono settate tranne quella di ruolo, e non riesco a capire il perchè... Non so se magari devo annotare qualcosa... Spero che qualcuno mi dia una mano... Comunque vi ringrazio in anticipo...