Olá a todos
Eu estou desenvolvendo uma aplicação de exemplo utilizando Hibernate + Hibernate Annotations e, no mapeamento de entidades, feito com JPA, estou com um pequeno problema.
O sistema de login da aplicação é feito em JAAS, então quando quero cadastrar um novo usuário na aplicação, devo salvar juntamente suas permissões.
Para fazer isto tenho a classe User com o seguinte código:
@Entity
@Table (name="User")
public class User extends BaseObject {
...
@OneToMany (mappedBy="roleUser")
private Set<Role> userRoles;
...
}
Já na classe Role o código é o seguinte:
@Entity
@Table (name="Role")
public class Role extends BaseObject {
...
@ManyToOne (fetch=FetchType.LAZY)
@JoinColumn (name="userLogin", insertable=true, updatable=true)
private User roleUser;
...
}
Para salvar um novo usuário utilizo o seguinte código:
public String save () {
Role role = new Role();
role.setRoleName("manager");
role.setRoleUser(this.getUser());
this.getUser().getUserRoles().add(role);
try {
this.getUserManager().saveUser(this.getUser());
this.addMessage("user.saved", this.getUser().getUserName(), FacesMessage.SEVERITY_INFO);
return "save";
} catch (DataAccessException exception) {
this.addMessage("user.error", this.getUser().getUserLogin(), FacesMessage.SEVERITY_ERROR);
return "error";
} // Finaliza o bloco try/catch.
} // Finaliza o método save.
O problema encontrado é que ao mandar salvar o novo usuário os dados do usuário são salvos no banco de dados com sucesso, porém os dados das permissões não são salvos.
Como faço para salvar juntamente com o usuário os dados de suas permissões?
Desde já agradeço pela ajuda.