Hibernate: Collection does not repopulate after save of Many-to-Many join
===

I just need to figure out why my collection of Roles would not populate member properties after save (add). I have two tables, User and Role, and the join table UserRole.

    public class User implements Serializable {
	private int id;
	@NotBlank(message = "{User.userName.notBlank}")
	@AlphaNumeric(message = "{User.userName.alphaNumeric}")
	private String name;
	@NotBlank(message = "{User.password.notBlank}")
	@AlphaNumeric(message = "{User.password.alphaNumeric}")
	private String password;
	private boolean enabled;
	private boolean deleteSafe;	
	@NotEmpty(message="{User.roles.notEmpty}")

	private Set<Role> roles; <-- this is my problem

And here is my Hibernate XML mapping

    <class name="User">
		<id name="id">
			<generator class="identity" />
		</id>
		<property name="name"></property>
		<property name="password"></property>
		<set name="roles" table="UserRoles" lazy="false">
			<key column="userId"></key>
			<many-to-many column="roleId" class="Role"></many-to-many>
		</set>
	</class>

And here is the simple Role class

    public class Role implements Serializable {
	private int id;	
	private String authority;
	private String name;

My UserRole table consists only of two columns, userId which maps to the id of User, and roleId, which maps to the id in Role.

I pass a User object with name, password, and a set of Roles.  Each Role in this list only has the id populated.  The UserRole table gets saved properly, but I want that after saving, the Set<Role> in my User object will have the authority and name attributes populated.

Those properties are populated in a normal 'get' User using the same mapping, I was hoping it will do the same after it does a 'save'.