tutorial example ejemplos hibernate jpa

example - Solución para el error de Hibernate "Uso del mismo nombre de entidad dos veces"



jpa ejemplos (6)

Creo que significa que ha declarado la misma entidad en más de un archivo de configuración.

Sin más información, trataría de comentar los fragmentos de su archivo de configuración para que no vea el error y luego vuelva a agregar secciones lentamente hasta que encuentre el error.

Si son solo unos pocos archivos de configuración, ¿por qué no los publica aquí? Al publicar, si agrega 4 espacios al frente de su XML, entonces será:

<xml>nicely formatted</xml>

Espero que esto ayude.

Cómo corrige el siguiente error de Hibernate:

¿Qué significa "Uso de la misma entidad nombre dos veces".


Uno de los errores más comunes que podría cometer para producir este error es intentar persistir dos clases diferentes de Java en tablas con nombres idénticos. A Hibernate le gusta que exista exactamente un tipo de cosa en cada tabla (con algunas excepciones para las subclases y similares), por lo que si creara una clase llamada quizás StudentRecord y una clase llamada MusicRecords, y luego le dijera a Hibernate que persistiera tanto de esas clases en una tabla llamada "registros", podría producir ese tipo de excepción. Con esa fraseología particular, sospecho que estás usando anotaciones (en cuyo caso es aún más fácil nombrar accidentalmente dos tablas, descritas en dos clases diferentes de Java, lo mismo).

¡Espero que esto ayude! (Aunque tal vez no, como he notado hace un momento que hiciste esta pregunta hace 7 meses. ¡Espero que todavía no estés atascado, señor!)


Me he encontrado con este error varias veces. Las causas fueron las siguientes:

  1. Tenía una asignación duplicada en mi configuración de hibernación (verificar el archivo / código de configuración)
  2. Dos hilos intentaban construir el objeto HibernateSessionFactory al mismo tiempo. Un bloqueo sincronizado en el código de inicialización lo solucionó.
  3. Ha fallado un intento de compilación de HibernateSessionFactory, pero se ha vuelto a llamar. El objeto de configuración de Hibernate no se borró, por lo que las entidades se están procesando de nuevo.
  4. Tiene asignadas dos clases de entidad al mismo archivo. Hibernate se ahogará con esto también.

Esta excepción se produce cuando tienes más de un @Entity con el mismo nombre de clase o nombre explícito. Para solucionar el problema, debe establecer diferentes nombres explícitos para cada entidad.

Ejemplo de caso de error:

package A; @Entity class Cell{ ... } package B; @Entity class Cell{ ... }

Ejemplo de solución: paquete A;

@Entity(name="a.Cell") class Cell{ ... } package B; @Entity(name="b.Cell") class Cell{ ... }

Entonces, para usarlos en HQL tienes que escribir

...createQuery("from a.Cell")...


Otro error común es que recientemente movió una de sus clases de persistencia (de un paquete a otro), pero su IDE no pudo limpiar sus archivos .class correctamente.

O algunos archivos .class todavía están dando vueltas en su servidor de aplicaciones.


Tengo este error (importación duplicada) recientemente: dos entidades con el mismo nombre ''MyEntity'' pero de diferentes paquetes / módulos: com.test1.MyEntity com.test2.MyEntity

No los usé, pero fueron cargados por hibernate a jboss. No me permitieron cambiar las entidades, así que tuve que hacer algunas soluciones.

  1. Agregue <property name="hibernate.auto-import" value="false"/> a persistance.xml. Impidió lanzar una excepción duplicada mientras se implementaba en jboss. Pero se lanzó una excepción cuando se llamó a mi consulta.
  2. Use la consulta JPQL. En mi caso, se parecía a: entityManager.createQuery("Select a.Name, b.name from AEntity a, BEntity b where a.ID = b.parentID")

Es feo pero es una solución.