The error is that when I create a user with the same alias I get the exception constraintviolationexception. I tried to perform a try catch on the controller method but it does not catch me and it continues to skip the exception
User Class
package com.example.demo.domain;
import java.util.Collection;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import com.example.demo.domain.Post;
@Entity
public class Usuario {
@Id
@GeneratedValue
private Long id;
@Column(unique=true)
private String alias;
private String contrasena;
private String nombre;
private String primerApellido;
private String segundoApellido;
private String telefono;
private String email;
private String sexo;
@Column(length=5000)
private String foto;
@OneToMany(mappedBy="PostSuyo")
private Collection<Post> Post;
public String getPrimerApellido() {
return primerApellido;
}
public void setPrimerApellido(String primerApellido) {
this.primerApellido = primerApellido;
}
public String getSegundoApellido() {
return segundoApellido;
}
public void setSegundoApellido(String segundoApellido) {
this.segundoApellido = segundoApellido;
}
@ManyToOne
private Rol nombre_rol;
public Usuario(){
super();
}
public Usuario(String alias, String contrasena, String nombre, String primerApellido, String segundoApellido, String telefono, String email, String sexo, Rol nombre_rol) {
super();
this.alias = alias;
this.contrasena = contrasena;
this.nombre = nombre;
this.primerApellido = primerApellido;
this.segundoApellido = segundoApellido;
this.telefono = telefono;
this.email = email;
this.sexo = sexo;
this.nombre_rol = nombre_rol;
nombre_rol.getRol().add(this);
}
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getAlias() {
return alias;
}
public void setAlias(String alias) {
this.alias = alias;
}
public String getContrasena() {
return contrasena;
}
public void setContrasena(String contrasena) {
this.contrasena = contrasena;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getSexo() {
return sexo;
}
public void setSexo(String sexo) {
this.sexo = sexo;
}
public Collection<Post> getPost() {
return Post;
}
public void setPost(Collection<Post> post) {
Post = post;
}
public Rol getNombre_rol() {
return nombre_rol;
}
public void setNombreRol(Rol nombre_rol) {
this.nombre_rol = nombre_rol;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getTelefono() {
return telefono;
}
public void setTelefono(String telefono) {
this.telefono = telefono;
}
public String getFoto() {
return foto;
}
public void setFoto(String foto) {
if("".equals(foto)){
this.foto = null;
}else{
this.foto = foto;
}
}
}
Method that creates the User
@RequestMapping(value = "/registro", method = RequestMethod.POST)
public String registroPost(@RequestParam("alias") String alias,
@RequestParam("contrasena") String contrasena,
@RequestParam("nombre") String nombre,
@RequestParam("primerApellido") String primerApellido,
@RequestParam("segundoApellido") String segundoApellido,
@RequestParam("telefono") String telefono,
@RequestParam("email") String email,
@RequestParam("sexo") String sexo,
ModelMap m){
try {
Rol rolPorDefecto = (Rol) repoRol.getDefaultRol();
Usuario u = new Usuario(alias, contrasena, nombre, primerApellido, segundoApellido, telefono, email, sexo, rolPorDefecto);
repoUsuario.save(u);
m.put("alias", alias);
m.put("view","/usuario/crearPost");
}
catch (ConstraintViolationException e) {
e.getMessage();
}
return "views/_t/main";
}
Error that appears to me
com.mysql.jdbc.exceptions.jdbc4.MySQLIntegrityConstraintViolationException: Duplicate entry 'juan' for key 'UK_js9w4v8xbocealarwch8tp0yn'