entre Desarrolladores

Recibe ayuda de expertos

Registrate y pregunta

Es gratis y fácil

Recibe respuestas

Respuestas, votos y comentarios

Vota y selecciona respuestas

Recibe puntos, vota y da la solución

Pregunta

1voto

Buenas a todos.

Por alguna razón cuando intento insertar o modificar un Empleado, me sale un error indicándome que el NivelDeUsuario ya existe. No entiendo por que intenta inserta primero el NivelDeUsuario.

Tengo otras entidades parecidas que no arrojan ese error.

Acá el código de las dos entidades

@Entity
public class NivelDeUsuario implements Serializable
{
    @Id
    private Integer nivelDeAcceso;

    @OneToMany(mappedby="nivelDeUsuario")
    private List<Empleado> empleados;

    //getters y setters
}

@Entity
public class Empleado implements Serializable 
{ 

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Integer id;

    @ManyToOne
    @JoinColumn
    private NivelDeUsuario nivelDeUsuario;

    //getters y setters
}

1voto

Javi2EE comentado

puede ser por muchas cosas y faltan algunos datos, asi a primera vista podria ser algun error con el metodo equals, hashcode o con el atributo @Id, si no se autogenera deberias de controlarlo manualmente y puede que sea lo que te este causando problemas. Cuelga datos de tu capa de negocio, en concreto como estas creando y persistiendo los objetos. Viendo mas cosas igual te puedo ayudar

2 Respuestas

1voto

kevinesaa Puntos520

Creo que ya lo soluciones. Al parecer hay algún tipo de problema con el id cero. Comencé a enviar empleados con nivelDeUsuario con id distinto al de cero (administrador), y eso si se persistían. Modifique para que los niveles de usuario empezaran en uno.

Lo curioso, es que antes si funcionaba.

1voto

bl4z3r Puntos16850

Según mi experiencia con ORMs, solamente debes declarar el tipo de relación solamente en una entidad. Si la declaras en varias, es como que al ORM le cuesta diferenciar si se esta hablando de la misma relación entre esas entidades o si es una relación nueva en entidades.

Por favor, accede o regístrate para responder a esta pregunta.

Otras Preguntas y Respuestas


...

Bienvenido a entre Desarrolladores, donde puedes realizar preguntas y recibir respuestas de otros miembros de la comunidad.

Conecta